2017-10-19 91 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

谢谢玛丽安娜娜现在完美的工作。 –