作者edyucheng (edyucheng)
看板Database
标题[SQL ] SQL Server 的IN 语法能查询多值吗
时间Sun Nov 12 17:14:19 2017
我有个资料表,要用order_no + customer 两个栏位来搜寻才能找到唯一的结果
今天我有一支程式,会从client端接收一个List,List中的每个项目包含了order_no 和c
ustomer
例如:
{('A001', 'John'), ('A002', 'Mary'), ('A003', 'Joe')}
我要用这个List的资料到Order资料表中找出这三笔资料,我用了IN语法如下:
SELECT * FROM Order WHERE (order_no, customer) IN (('A001', 'John'), ('A002',
'Mary'), ('A003', 'Joe'))
但不知道为什麽就是跑不出来,是因为MS SQL Server 不支援这样的语法吗?
或者 还有什麽更好的作法呢?
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 49.158.21.117
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/Database/M.1510478062.A.566.html
1F:→ funk6478: where order_no + customer in ('A001John','A002Mary', 11/12 22:34
2F:→ funk6478: 'A003Joe') 这样不知道可不可以 11/12 22:34
3F:推 liisi: 用concat试看看? 11/12 22:44
4F:推 cutekid: 推 1 楼(Y) 11/12 23:56
5F:→ ishewood: 把list转成两栏的暂时表,再去join 11/13 00:28
6F:→ ishewood: 1楼作法要小心'abcxyz'=('abc'+'xyz') or ('ab'+'cxyz') 11/13 00:29
7F:→ retsamsu: 分隔符号要小心就没事了 11/13 09:27
8F:推 rockchangnew: 不建议1楼做法,ishewood作法比较好 11/13 15:36