2017-10-19 92 views
-1

我希望把這些條件,我的存儲過程我想提出的if else語句在存儲過程,但沒有找到任何解決方案

if ((select PriSubmissionStatusId from Claim where ClaimId = 375)!= 106 ) Print 'Primary' 
else if((select SecSubmissionStatusId from Claim where ClaimId = 375)= 0)print 'Primary' 
else if((select SecSubmissionStatusId from Claim where ClaimId = 375)!= 106)print 'Secoundary' 
else if((select OthSubmissionStatusId from Claim where ClaimId = 375)= 0)print 'Secoundry' 
else if((select OthSubmissionStatusId from Claim where ClaimId = 375)!= 106)print 'Other' 
else print 'Primary' 

爲列名建立起來,他們也是在存儲過程中另一列其中來自不同的桌子。任何想法?

+0

的條件是混亂!如果SecSubmissionStatusId = 0,那麼SecSubmissionStatusId = 0且SecSubmissionStatusId <> 106是真的!你能否詳細描述一下你真正需要的樣本數據? –

回答

0

使用Case When,而不是if else

SELECT CASE WHEN PriSubmissionStatusId <> 106 THEN 'Primary' 
      WHEN SecSubmissionStatusId = 0  THEN 'Primary' 
      WHEN SecSubmissionStatusId <> 106 THEN 'Secoundary' 
      WHEN OthSubmissionStatusId = 0  THEN 'Secoundry' 
      WHEN OthSubmissionStatusId <> 106 THEN 'Other' 
     END 
FROM Claim 
WHERE ClaimId = 375 
+0

他們也在其中的其他列,我如何使用它。 –

+0

請把你的表格數據樣本 –

+0

謝謝瑪麗安娜娜現在完美的工作。 –