我想提出的if else语句在存储过程,但没有找到任何解决方案
问题描述:
我希望把这些条件,我的存储过程我想提出的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'
为列名建立起来,他们也是在存储过程中另一列其中来自不同的桌子。任何想法?
答
使用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
谢谢玛丽安娜娜现在完美的工作。 –
的条件是混乱!如果SecSubmissionStatusId = 0,那么SecSubmissionStatusId = 0且SecSubmissionStatusId 106是真的!你能否详细描述一下你真正需要的样本数据? –