我有一个现有的存储过程,如下所示:
SELECT TOP 1
...
CASE PX.Client.value('(Type)[1]', 'varchar(25)')
WHEN 'Sole Proprietor' THEN 'SPR'
WHEN 'Partnership' THEN 'PAR'
WHEN 'Corp (C)' THEN 'COR'
WHEN 'Corp (S)' THEN 'SCO'
WHEN 'LimitedCorp' THEN 'LLC'
WHEN 'Trust' THEN 'TRU'
END AS MyStructure,
...
INTO #Prod
FROM
@XMLIN.nodes('/MyDataset/MyRegistration') AS PX(Client)
除了我需要改变逻辑之外,一切都很好。如果Type是“LimitedCorp”,那么MyStructure总是“LLC”。但是我需要对其进行更改,以便根据TaxClassification对其进行细分MyStructure(伪代码):
...
WHEN 'LimitedCorp' THEN
IF PX.Client.value('(TaxClassification)[1]') == 'Partnership' THEN 'LP'
ELSE IF PX.Client.value('(TaxClassification)[1]') == 'SCorp' THEN 'LLS'
ELSE 'LLC'
WHEN 'Trust' ...
在我的.NET代码中,这将是一块蛋糕!我的存储过程语法虽然不是很强大!谢谢!
答案 0 :(得分:2)
嵌套另一个case
:
WHEN 'LimitedCorp' THEN
case
when PX.Client.value('(TaxClassification)[1]') == 'Partnership' then 'LP'
when PX.Client.value('(TaxClassification)[1]') == 'SCorp' then 'LLS'
else 'LLC'
end
WHEN 'Trust' THEN 'TRU'