gpt4 book ai didi

sql - 基于两个表的select CASE语句

转载 作者:行者123 更新时间:2023-12-05 09:21:13 26 4
gpt4 key购买 nike

MS SQL Server 2008R2 管理工作室

我在两个表上运行 SELECT。我会将其简化为遇到问题的部分。我需要将 SELECT 结果修改为特定格式以进行数据导入。我的 CASE 语句工作正常,直到我需要将 WHEN ... THEN... 基于不同的表列

TABLE1
-----------------
name | tag | code
-----------------------
name1 | N | 100
name2 | N | 100
name3 | N | 200
name4 | Y | 100
name5 | N | 400
name6 | N | 700

CODES
-------------------------
code | desc
-------------------------
100 | string1
200 | string2
300 | string2
400 | string2
700 | string2

SELECT name,
Case CODES.desc
when 'string1' then 'String 1'
when 'string2' then 'String 2'
when 'string3' then 'String 3'
when 'string4' then 'String 4'
END as description
FROM TABLE1
join CODES on TABLE1.code = CODES.code

这很好用。问题是如果 TABLE1.tag = Y,则描述需要是 'Other string',它不在 CODES 表中

我尝试添加:

Case CODES.desc
.....
when TABLE1.tag = Y then CODES.desc 'Other String'

但是没用。

最佳答案

您可以使用稍微更健壮的 case 语法并将案例表示为条件,而不仅仅是可能的值:

SELECT name,
CASE WHEN table1.tag = 'Y' THEN 'other string'
WHEN codes.[desc] = 'string1' THEN 'String 1'
WHEN codes.[desc] = 'string2' THEN 'String 2'
WHEN codes.[desc] = 'string3' THEN 'String 3'
WHEN codes.[desc] = 'string4' THEN 'String 4'
END AS description
FROM table1
JOIN codes ON table1.code = codes.code

关于sql - 基于两个表的select CASE语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33742036/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com