2014-11-04 20 views
0

我使用下面的CASE語句在SQL Developer中:問題與CASE語句不給正確的值

CASE 
    WHEN ([Medication]="N") AND ([Name]="STYMES") AND ([Original Units] IS NOT NULL) THEN "Y" 
    WHEN ([Medication]="N") AND ([Name]="STYMES") AND ([Original Units] IS NULL) THEN "N" 
    WHEN ([Medication]="Y") AND ([Name]="STYMES") AND ([Original Units] IS NOT NULL) THEN "N" 
    WHEN ([Medication]="Y") AND ([Name]="STYMES") AND ([Original Units] IS NULL) THEN "Y" 
END 

我的結果是空的時,我至少應該得到N

+2

當名稱不是STYMES或應該發生什麼藥物領域包含除N或Y以外的其他東西(例如,1,0,NULL,TRUE,FALSE,犛牛)? – AHiggins 2014-11-04 19:35:42

+0

當名稱不是STYMES和藥物字段包含Y時,我希望收到一個Y – 3piecechickendinner 2014-11-04 20:27:53

回答

1

如果你想要的是得到一個「N」時,不符合你的其他條件,可以使用ELSE關鍵字,如:

case 
    when ([Medication]="N") AND ([Name]="STYMES") AND([Original Units] is not null) then "Y" 
    when ([Medication]="N") AND ([Name]="STYMES") AND([Original Units] is null) then "N" 
    when ([Medication]="Y") AND ([Name]="STYMES") AND([Original Units] is not null) then "N" 
    when ([Medication]="Y") AND ([Name]="STYMES") AND([Original Units] is null) then "Y" 
    else "N" 
end 
+0

非常感謝AHiggins – 3piecechickendinner 2014-11-04 21:16:38