我有一张customer如下所述的桌子.
customer_id number
customer_name varchar(30)
city varchar(20)
列.当以下查询在Oracle db中运行时
SELECT customer_id, city FROM customer WHERE city IN ('abc', 'def', 'ghi')
我得到的输出如下所示.表没有记录ghi
customer_id, city
1, abc
2, def
我正在尝试将输出形成如下.
customer_id, city
1, abc
2, def
null, ghi
虽然ghi在表中没有记录,但是要在SELECT查询输出中显示它,其余的列值为null.
非常感谢为这种情况编写SQL的帮助.
您需要一个包含所有可能性的派生表.要么你有一个,就像城市表,然后你可以做:
SELECT t.customer_id,s.city
FROM city_table s
LEFT JOIN customer t
ON(s.id = t.city)
WHERE s.city IN ('abc', 'def', 'ghi')
Run Code Online (Sandbox Code Playgroud)
或者生成你自己的价值观:
SELECT t.customer_id,s.city
FROM (SELECT 'abc' as id FROM DUAL
UNION ALL
SELECT 'def' FROM DUAL
UNION ALL
SELECT 'ghi' FROM DUAL) s
LEFT JOIN customer t
ON(s.id = t.city)
WHERE s.id IN('abc', 'def', 'ghi')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
330 次 |
| 最近记录: |