[SQL ] SQL Server 的IN 语法能查询多值吗

楼主: edyucheng (edyucheng)   2017-11-12 17:14:19
我有个资料表,要用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 不支援这样的语法吗?
或者 还有什么更好的作法呢?
作者: funk6478 (大恩)   2017-11-12 22:34:00
where order_no + customer in ('A001John','A002Mary','A003Joe') 这样不知道可不可以
作者: liisi (小心一点)   2017-11-12 22:44:00
用concat试看看?
作者: cutekid (可爱小孩子)   2017-11-12 23:56:00
推 1 楼(Y)
作者: ishewood (木头)   2017-11-13 00:28:00
把list转成两栏的暂时表,再去join1楼作法要小心'abcxyz'=('abc'+'xyz') or ('ab'+'cxyz')
作者: retsamsu   2017-11-13 09:27:00
分隔符号要小心就没事了
作者: rockchangnew (rock)   2017-11-13 15:36:00
不建议1楼做法,ishewood作法比较好

Links booklink

Contact Us: admin [ a t ] ucptt.com