在以下情况下如何创建 Oracle SQL 语句?
How to create an Oracle SQL statement in the following case?
我有一个 oracle table 具有三个列和三个数据记录,如下所示
ID FIRST_NAME LAST_NAME
01 Jason Martin
02 Alison Mathews
03 Robert Black
我想select给定 ID 的名字。
如果ID存在,即01、02、03之间的值,需要显示对应的FIRST_NAME;
如果ID不存在,需要显示*号。
你能帮我创建这样一个 oracle SQL 语句吗?
非常感谢。
使用 CASE
语句:
SELECT ID,
CASE WHEN ID IN ('01', '02', '03') THEN FIRST_NAME ELSE '*' END
FROM yourTable
注意:根据您的输入数据,我假设 ID
列是 VARCHAR
而不是数字,因为前导零。如果 ID
是数字,则将查询更改为:
SELECT ID,
CASE WHEN ID IN (1, 2, 3) THEN FIRST_NAME ELSE '*' END
FROM yourTable
做一个外部连接,这个例子使用 id = 2:
select coalesce(FIRST_NAME, '*')
from dual
left join tablename on id = 2
我有一个 oracle table 具有三个列和三个数据记录,如下所示
ID FIRST_NAME LAST_NAME
01 Jason Martin
02 Alison Mathews
03 Robert Black
我想select给定 ID 的名字。
如果ID存在,即01、02、03之间的值,需要显示对应的FIRST_NAME;
如果ID不存在,需要显示*号。 你能帮我创建这样一个 oracle SQL 语句吗?
非常感谢。
使用 CASE
语句:
SELECT ID,
CASE WHEN ID IN ('01', '02', '03') THEN FIRST_NAME ELSE '*' END
FROM yourTable
注意:根据您的输入数据,我假设 ID
列是 VARCHAR
而不是数字,因为前导零。如果 ID
是数字,则将查询更改为:
SELECT ID,
CASE WHEN ID IN (1, 2, 3) THEN FIRST_NAME ELSE '*' END
FROM yourTable
做一个外部连接,这个例子使用 id = 2:
select coalesce(FIRST_NAME, '*')
from dual
left join tablename on id = 2