看板 Database 關於我們 聯絡資訊
我有個資料表,要用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