[SQL ] 這樣的情況能否有更快速的寫法

作者: aoksc (重出江湖)   2015-11-16 22:11:37
(針對 SQL 語言的問題,用這個標題。請用 Ctrl+Y 砍掉這行)
資料庫名稱:SQL SERVER
資料庫版本:2008、2012
內容/問題描述:
請問各位
如果有某個查詢其實條件都差不多
但因為有用到OR的情況所以我用union來合併查詢結果代替OR
像是這樣
select * from xxx where aaa=1 and bbb='OOXX'
union
select * from xxx where aaa=1 and ddd='2015/11/11'
union
select * from xxx where aaa=1 and ccc=9527
想請問一下
是否有類似先取得select * from xxx where aaa=1的結果暫存
再去套bbb、ccc、ddd的查詢條件是不是會更快
請問有這種寫法嗎?
謝謝
作者: bohei (run and fall)   2015-11-16 23:06:00
有啊 你自己建一個temp table @@
作者: a926 (Aaron)   2015-11-17 09:52:00
可以考慮用CTE
作者: clonk (咚)   2015-11-17 11:53:00
不能直接OR嗎?aaa=1 and (bbb='2' or ddd='3' or ccc='4')
作者: JeremyJoung (J.J.)   2015-11-17 12:06:00
樓上的方法比較正確 而且原始方法會導致 b=2&&d=3時資料行重複出現的可能
作者: likesp999 (大腸桿菌)   2015-11-17 12:17:00
原po有下union但沒下all因該就不會重複吧!

Links booklink

Contact Us: admin [ a t ] ucptt.com