讓我們來簡單介紹一下。案例陳述邏輯
我有一張桌子。
visitID studentname dob roll.no value displIndex propID
200019 rob 05/18/1937 101 smoking 2 83
200019 rob 05/18/1937 101 2 91
200019 rob 05/18/1937 101 alcohol 1 83
200019 rob 05/18/1937 101 1 91
200020 henry 08/20/1987 102 smoking 2 83
200020 henry 08/20/1987 102 2 91
200021 king 09/21/1982 103 alcohol 1 83
200021 king 09/21/1982 103 1 91
我有一個類似的表。
現在我想要做的是,如果該學生的特定visitID
沒有顯示索引1,那麼在case語句中返回值爲'779'
。
select visitID,studentname
,dob
,roll.no
,value
,dispIndex
,propID
,case
WHEN (PATINDEX('%smoking%',value) >0 OR
(PATINDEX('%sometimes smoking%',value) > 0) THEN
'777'
WHEN (PATINDEX(%not smoking%,value) >0 OR
(PATINDEX(%do not smoke%,value) >0_ THEN
'778'
WHEN (ISNULL(CAST(value as varchar(max)),'')='') THEN
'779'
ELSE
'779'
END VALUE
這裏King沒有吸菸記錄。所以我想讓它進入779桶。我該如何執行該操作?
如果習慣是自由文本,您有[數據修改異常](http://en.wikipedia.org/wiki/Database_normalization#Free_the_database_of_modification_anomalies)。並不確定你想要什麼。我無法看到表格之間的字段與起始者之間的關係如何 – gbn
還有一些示例輸出是好的。此外,**在您的示例查詢中拼寫錯誤的關鍵字時,您的努力並不會顯示出太多的關注!** – JNK
什麼是's.value'?以及代表您使用'CASE '聲明? – Lamak