我正在编写我的第一个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)
一个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)