CASE WHEN T.DCCD='0' THEN '' WHEN T.DCCD='1' THEN (convert(varchar,(SELECT COUNT(*) FROM CB_GZDJ WHERE (DJH IN (T.DJH,T.CTDJH) OR CTDJH IN (T.DJH,T.CTDJH))AND CBLX IN('010','020') ))+'/'+convert(varchar,(SELECT COUNT(*) FROM CB_GZDJ WHERE (DJH IN (T.DJH,T.CTDJH) OR CTDJH IN (T.DJH,T.CTDJH)) AND CBLX='030'))) END AS LT
如果是船头,那么第一个是DJH IN(1,'')=1+CTDJH IN(1,'')=3 最终等于4
如果不是船头,假如是第二个DJH(2,1)=2+CTDJH IN (2,1)=2 最终也是4
还有一种方法如果是不是船头的话,那么就是CTDJH=本船的CTDJH+1 即3+1
CASE WHEN T.CTDJH IS NULL THEN (DJH=T.DJH OR CTDJH=T.DJH ) WHEN T.CTDJH IS NOT NULL THEN (CTDJH=T.CTDJH or DJH=T.CTDJH ) END
String sss="CASE WHEN T.DCCD='0' THEN '' WHEN T.DCCD='1' THEN (convert(varchar,(SELECT COUNT(*) FROM CB_GZDJ WHERE CASE WHEN T.CTDJH IS NULL THEN (DJH=T.DJH OR CTDJH=T.DJH AND CBLX IN('010','020')) WHEN T.CTDJH IS NOT NULL THEN (CTDJH=T.CTDJH or DJH=T.CTDJH AND CBLX IN('010','020')) END ))+'/'+convert(varchar,(SELECT COUNT(*) FROM CB_GZDJ WHERE CASE WHEN T.CTDJH IS NULL THEN (DJH=T.DJH OR CTDJH=T.DJH AND CBLX='030') WHEN T.CTDJH IS NOT NULL THEN (CTDJH=T.CTDJH or DJH=T.CTDJH AND CBLX='030') END ))) END AS LT ";
DJH CTDJH
1
2 1 2 1
3 1
4 1
from table where case when 0 then 1=1 end;
卍滄海一粟卐 18:28:48
不支持
卍滄海一粟卐 18:29:06
from table where (case when 0 then 1 end)=1;
卍滄海一粟卐 18:29:17
下面的可以,上面的不可以
卍滄海一粟卐 18:29:24
相当于where 1=1
case when最后要输出一个值,多用于select列表中,如果用在where中,就要看你能否正确输出值了很明显你的语句 (case when end)=最后没有响应的值出现,就不对了呗