2013-10-21 62 views
1

我期待的情況下,所有bacheloreatte度非BA或BS的單獨(例如BSAST)。我嘗試了一個嵌套的case語句,但是因爲我對t-sql比較陌生,所以我不確定它是否是我的語法或者它是不可能的。請注意,這是在一個選擇語句。可能帶有'不喜歡'的案例陳述?

SELECT 
t2.ID, 
t2.ACAD_PROGRAM, 
'092013' AS T01, 
'274842' AS T02, 
REPLACE(p.SSN,'-','') AS T03, 
'5' AS T04, 
ap.ACPG_CIP AS T05, 
CASE(t2.ACAD_PROGRAM) 
    WHEN 'BA%' THEN '1' 
    WHEN 'BS' THEN '2' 
    ELSE (CASE 
      WHEN t4.STP_DEGREE LIKE 'BA%' 
      THEN '1' END) 
END AS T06 

回答

4

CASE has two formats,能夠與LIKE operator,你第一種情況下使用應該是Searched Case

SELECT t2.ID, t2.ACAD_PROGRAM, '092013' AS T01, '274842' AS T02, 
     REPLACE(p.SSN,'-','') AS T03, '5' AS T04, ap.ACPG_CIP AS T05, 
     CASE WHEN t2.ACAD_PROGRAM LIKE 'BA%' THEN '1' 
      WHEN t2.ACAD_PROGRAM = 'BS' THEN '2' 
     ELSE 
      CASE WHEN t4.STP_DEGREE LIKE 'BA%' THEN '1' END 
     END AS T06 
FROM yourTable