2017-09-16 70 views
1

Member表中有一個'gender'字段,其值爲'm'或'f'。我想打印 'PASS' 如果兩個 'm' 和 'F' 在現場和PRINT存在 'FAIL',如果:IF結果爲IN('m','f')THEN PRINT(tsql)

  1. 只有兩個值中的一個(米或f)存在

或2.除m或f以外的值存在

或3.空記錄存在。

當我運行下面的代碼,我得到「子查詢返回多個值」消息。

IF ((SELECT DISTINCT Gender FROM dbo.Member) in ('M','F')) 
PRINT 'PASS' 
ELSE 
PRINT 'FAIL'` 

預先感謝您!

回答

2
IF EXISTS (SELECT * FROM (
     SELECT sum(case when gender= 'M' then 1 else 0 end) M, 
       sum(case when gender= 'F' then 1 else 0 end) F, 
       sum(case when gender not in('F', 'M') then 1 else 0 end) Other 
     FROM dbo.Member) a 
     WHERE a.M>0 and a.F>0 and a.Other=0)  
PRINT 'PASS' 
ELSE 
PRINT 'FAIL' 
+0

太棒了!謝謝!!!!!! – inincubus