作者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://www.ptt.cc/bbs/Database/M.1510478062.A.566.html
→ funk6478: where order_no + customer in ('A001John','A002Mary', 11/12 22:34
→ funk6478: 'A003Joe') 這樣不知道可不可以 11/12 22:34
推 liisi: 用concat試看看? 11/12 22:44
推 cutekid: 推 1 樓(Y) 11/12 23:56
→ ishewood: 把list轉成兩欄的暫時表,再去join 11/13 00:28
→ ishewood: 1樓作法要小心'abcxyz'=('abc'+'xyz') or ('ab'+'cxyz') 11/13 00:29
→ retsamsu: 分隔符號要小心就沒事了 11/13 09:27
推 rockchangnew: 不建議1樓做法,ishewood作法比較好 11/13 15:36