我的意思是:sql:如何在選擇查詢中將字段合併到一個向量中?
...
select...
where (a=1 and b=1) or (a=1 and b=2) or (a=2 and b=3) or(a=3 and b =2)
可以這樣簡化爲像
...select...
where (a,b) in ((1,1),(1,2),(2,3),(3,2))
的想法是不單獨檢查領域,但他們團結成一個向量和檢查矢量值。
我的意思是:sql:如何在選擇查詢中將字段合併到一個向量中?
...
select...
where (a=1 and b=1) or (a=1 and b=2) or (a=2 and b=3) or(a=3 and b =2)
可以這樣簡化爲像
...select...
where (a,b) in ((1,1),(1,2),(2,3),(3,2))
的想法是不單獨檢查領域,但他們團結成一個向量和檢查矢量值。
對於SQLServer2005的+
功能CHECKSUM()來計算哈希值,其被稱爲校驗和。 more info
SELECT *
FROM dbo.your_table t
WHERE CHECKSUM(a,b) in (CHECKSUM(1,1),CHECKSUM(1,2),CHECKSUM(2,3),CHECKSUM(3,2))
你不說出你的DBMS,但這:
where (a,b) in ((1,1),(1,2),(2,3),(3,2))
是有效的(標準)的SQL。
和它的作品(至少)在PostgreSQL裏,甲骨文和MySQL:PostgreSQL的
SQLFiddle演示:http://sqlfiddle.com/#!12/ffbcb/1
SQLFiddle演示用於Oracle:http://sqlfiddle.com/#!4/a42cb/1
SQLFiddle演示爲MySQL:http://sqlfiddle.com/#!2/a42cb/1
由於這是ANSI SQL,其他DBMS也應該支持這一點。