我正在构建一个SQL查询,需要将数字转换为单词。
该字段标题为Type,值为1或2.我需要将1转换为显示为问题,将2转换为显示为分辨率。
我将如何做到这一点。我将它构建为SQL数据工具中的表达式,但我们正朝着不同的方向发展,需要将其添加到查询中,并以另一种方式显示报告。
谢谢!
答案 0 :(得分:1)
我建议您将第二个表格与您的ID /名称组合作为查找,并执行加入。
这样,当新类型进入时,您只需要更改名称,而不是代码。
虽然,语法是
CASE WHEN Type = 1 THEN 'Problem'
WHEN Type = 2 THEN 'Resolution' END
答案 1 :(得分:0)
尝试以下选项,它仅适用于2种类型(如问题所示):
Declare @Type int = 1
select
case @Type when 1 then 'Problem'
else 'Resolution'
end as Result
set @Type = 2
select
case @Type when 1 then 'Problem'
else 'Resolution'
end as Result
答案 2 :(得分:0)
你基本上构建了规范化数据库的第一部分,你还没有完成第二部分。数字:1和2,可以是链接到第二个表的唯一自动递增ID字段的第二个数据表的外键:
+-------+ +----+-------------+
| Type | | ID | Description |
+-------+ +----+-------------+
| 1 | | 1 | Problem |
| 2 | | 2 | Resolution |
| 2 | +----+-------------+
| 1 |
+-------+
然后,您可以使用此架构查询数据:
SELECT `table2`.`description`
FROM `table2`
INNER JOIN `table1`
ON `table1`.`type` = `table2`.`id`
WHERE `table1`.`type` = 1
小提琴:Live Demo
这样做是为了让您可以在第二个数据表中添加更多ID和描述,而无需重写大量代码。