case statement in SQL, how to return multiple variables?

后端 未结 9 2179
甜味超标
甜味超标 2020-12-05 13:40

I would like to return multiple values in my case statement, such as :

SELECT
  CASE
    WHEN  THEN 
    WHEN          


        
相关标签:
9条回答
  • 2020-12-05 14:23

    In your case you would use two case staements, one for each value you want returned.

    0 讨论(0)
  • 2020-12-05 14:25

    In a SQL CASE clause, the first successfully matched condition is applied and any subsequent matching conditions are ignored.

    0 讨论(0)
  • 2020-12-05 14:27

    You can return multiple value inside a xml data type in "case" expression, then extract them, also "else" block is available

    SELECT 
    xmlcol.value('(value1)[1]', 'NVARCHAR(MAX)') AS value1,
    xmlcol.value('(value2)[1]', 'NVARCHAR(MAX)') AS value2
    FROM
    (SELECT CASE
    WHEN <condition 1> THEN
    CAST((SELECT a1 AS value1, b1 AS value2 FOR XML PATH('')) AS XML)
    WHEN <condition 2> THEN
    CAST((SELECT a2 AS value1, b2 AS value2 FOR XML PATH('')) AS XML)
    ELSE
    CAST((SELECT a3 AS value1, b3 AS value2 FOR XML PATH('')) AS XML)
    END AS xmlcol
    FROM <table>) AS tmp
    
    0 讨论(0)
提交回复
热议问题