SQL CASE返回两个值

Atl*_*ler 1 sql case

我正在编写我的第一个SQL CASE语句,并且我已经对它们进行了一些研究.显然,由于背景和那种性质的事物,实际的做法将与我读到的有点不同.我明白他们是如何工作的.我正好无法正确地形成我的.下面是我的SQL语句草案,其中我试图返回两个值(来自版本A的代码值及其标题或来自版本B及其标题的代码值).我被告知你不能在一个CASE语句中返回两个值,但我无法弄清楚如何重写这个SQL语句来给我所需的所有值.有没有办法在CASE中使用CASE(如每列的CASE语句)?

PS粘贴代码时我删除了别名只是为了使帖子更简洁

SELECT
    CASE
        WHEN codeVersion = A THEN ACode, Title
        ELSE BCode, Title
    END
FROM Code.CodeRef
WHERE ACode=@useCode OR BCode=@useCode 
Run Code Online (Sandbox Code Playgroud)

Gor*_*off 6

一个case声明只能返回一个值.您可以轻松地编写您想要的内容:

SELECT (CASE WHEN codeVersion = 'A' THEN ACode
             ELSE BCode
        END) as Code, Title
FROM Code.CodeRef
WHERE @useCode in (ACode, BCode);
Run Code Online (Sandbox Code Playgroud)