在 MySQL 中,如何SELECT对常量值数组执行 a ?类似的东西:
SELECT ['1', '2', '3'] AS ID;
所需的输出是:
+-----+
| ID |
+-----+
| 1 |
| 2 |
| 3 |
Run Code Online (Sandbox Code Playgroud) 我有这样一张桌子:
id | val
---------
1 | abc
2 | def
5 | xyz
6 | foo
8 | bar
Run Code Online (Sandbox Code Playgroud)
和查询一样
SELECT id, val FROM tab WHERE id IN (1,2,3,4,5)
Run Code Online (Sandbox Code Playgroud)
返回
id | val
---------
1 | abc
2 | def
5 | xyz
Run Code Online (Sandbox Code Playgroud)
有没有办法让它返回NULL丢失的id,即
id | val
---------
1 | abc
2 | def
3 | NULL
4 | NULL
5 | xyz
Run Code Online (Sandbox Code Playgroud)
我想应该有一个棘手的LEFT JOIN与它本身,但不能包围我的头.
编辑:我看到人们正在考虑我想在序列中"填补空白",但实际上我想要的是将NULL替换为IN列表中的缺失值.例如,这个
SELECT id, val FROM tab WHERE id IN (1,100,8,200)
Run Code Online (Sandbox Code Playgroud)
应该回来
id …Run Code Online (Sandbox Code Playgroud) 在PL/SQL中,如何声明包含多个值的变量MyListOfValues(MyValue1,MyValue2等)
SELECT *
FROM DatabaseTable
WHERE DatabaseTable.Field in MyListOfValues
Run Code Online (Sandbox Code Playgroud)
我正在使用Oracle SQL Developer
是否有任何单个 SQL语句等同于这些?
UPDATE table_name SET (a = 'something', b='B1') WHERE id=1;
UPDATE table_name SET (a = 'something else', b='B2') WHERE id=2;
UPDATE table_name SET (a = 'another', b='B3') WHERE id=3;
Run Code Online (Sandbox Code Playgroud)