2013-09-10 79 views
1

我的表格包含一個名爲「notes」的列。我需要在我的報告中創建一個列Temper。如果我在筆記中發現一個詞「生氣」,那麼我的新變量Temper應該是3。如果我發現一個詞「無關」,那麼Temper=2,否則Temper應該等於0如何在Teradata查詢報告中基於條件語句創建新列?

初始表:

Id State Gender Notes 
1 IL  M  Kind of angry, but... 
2 MI  F  Maybe indifferent also... 
3 IL  F  Was cool but not necces... 

結果應該是這樣的:

Id  Temper 
    1   3 
    2   2 
    3   0 

我不知道如何在Teradata的環境中做到這一點:

select Id, (notes like '%angry%')=3 else // ????? 
from customers 
where 
case 

回答

2

喜歡的東西這個:

select id, 
     case 
     when notes like '%angry%' then 3 
     when notes like '%indifferent%' then 2 
     else 0 
     end as temper 
from customers; 
+0

非常感謝!你能指導我爲Teradata提供一個很好的教程嗎?我一直在嘗試使用像'select * from user_constraints'這樣的'Oracle'語句,但是沒有任何工作... – CHEBURASHKA

+0

@CHEBURASHKA:'user_constraints'是一個Oracle系統目錄。我沒有看到這個查詢的相關性。我會假設這些目錄表在Teradata手冊中有記錄。 –

+0

@CHEBURASHKA:大部分Oracle SQL語法與Teradata/Standard SQL非常相似。 CASE是至少10年的Oracle語法(替換DECODE)。 – dnoeth