2
我正在使用SQL查詢插入臨時表。我有一個名爲「標誌」的列,我想根據條件按位「或」進行操作,並且我想在SQL查詢中多次執行它......所以就僞代碼而言。插入到臨時表中的SQL如果按位操作
select
if(@Date not between a.beginDate and isnull(a.endDate,@Date)
Flag | 1
else if (@Date not between b.beginDate and isnull(b.endDate,@Date)
Flag | 2
else if (@Date not between c.beginDate and isnull(c.endDate,@Date)
Flag | 4
etc.
這是可能的嗎?在查詢之後,我在臨時表上使用單獨的更新語句來執行此操作,並且它可以工作,但我被告知可以在查詢中使用case語句完成此操作。
最簡單的例子:
Table A Table B Table C
Flag Name Name
0 "Scott" "Joe"
If table B name is "Scott"
Flag | 1 = 1
if table C name is "Joe"
Flag | 2 = 2
因此標誌應在臨時表3之後。
樣本數據和預期的結果將真正幫助。 –
我最簡單的例子: 'code' 表A表B表C 標誌名稱名稱 0 「斯科特」 「喬」 'code' 如果B表的名稱是 「斯科特」 標誌| 1 = 1 如果表C的名稱是「Joe」 Flag | 2 = 2 因此,標記應該在臨時表中爲3 – GordonRamsay
最好不要將多個事實存儲在單個列中。這不是SQL方式。 –