2017-09-16 13 views
1

멤버 테이블에 'm'또는 'f'값이있는 성별 필드가 있습니다. I는 'm'와 'F'모두 필드 PRINT 존재할 경우 'FAIL'PASS '을 인쇄하려면 :IF 결과가 IN ('m', 'f') 인 경우 THEN PRINT (tsql)

  1. 두 개의 값 중 하나 (m 또는 F) 존재

또는 2. m 또는 f 이외의 값이 존재합니다.

또는 3. null 레코드가 있습니다.

다음 코드를 실행하면 "Subquery returned than 1 value"메시지가 나타납니다.

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