1 sql-server union sql-server-2000
有没有办法从IN子句中检索所有数据?
我们假设我的桌子有(ID,名字):
0 Banana
1 Mango
2 Papaya
3 Lemon
和我的查询:
SELECT * FROM Fruits WHERE Name IN (Banana,Mango,Orange)
Run Code Online (Sandbox Code Playgroud)
我希望'Orange'返回,带有空ID(因为没有注册).这该怎么做?
你不能使用这个IN条款.您需要将目标水果放入可以外连接的表中.
SELECT ...
FROM
(SELECT 'Banana' AS fruit UNION ALL SELECT 'Mango' UNION ALL SELECT 'Orange') f
LEFT JOIN Fruits ON Fruits.Name = f.fruit
Run Code Online (Sandbox Code Playgroud)
或选项2(只要您的列表<= 8000个字符).像这里创建一个UDF (但使用varchar(8000)而不是varchar(max)).然后按如下方式使用它.
SELECT ...
FROM dbo.fnSplitStringList('Banana,Mango,Orange') f
LEFT JOIN Fruits ON Fruits.Name = f.StringLiteral
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
592 次 |
| 最近记录: |