2017-06-21 51 views
0

我想在where子句中執行特定任務,只有源代碼像「GOLD%」那麼SOURCE_SUB_CATEGORY與任何('WHITE%','YELLOW%')一樣。teradata使用where子句或此替代方法的SQL case語句

SELECT t1,t2, t3 from table where <other conditions> and case when SOURCE="GOLD%" then SOURCE_SUB_CATEGORY like any ('WHITE%','YELLOW%') end group by 1,2,3. 

這是引發錯誤 - 「語法錯誤,預計類似的詞‘SOURCE_SUB_CATEGORY’和 ‘像’關鍵字之間的‘END’關鍵字」。 所以我要找的所有東西都是隻有當源是黃金時才執行,然後是隻在source_sub_category與任何白色%或黃色%類似時才選擇的情況。我想我不應該在這裏使用case語句,我準備使用任何替代方法來執行此任務。

回答

1

因此,首先,SOURCE="GOLD%"無效。您想要SOURCE LIKE 'GOLD%'

處理您的where語句,我會使用類似:

where... 
and (
(SOURCE LIKE 'GOLD%' and sub_source_category like any('WHITE%','YELLOW%')) 
OR SOURCE NOT LIKE 'GOLD%')