让我们来简单介绍一下。案例陈述逻辑
我有一张桌子。
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