将字段中的数字值转换为单词

时间:2018-01-05 14:47:56

标签: sql

我正在构建一个SQL查询,需要将数字转换为单词。

该字段标题为Type,值为1或2.我需要将1转换为显示为问题,将2转换为显示为分辨率。

我将如何做到这一点。我将它构建为SQL数据工具中的表达式,但我们正朝着不同的方向发展,需要将其添加到查询中,并以另一种方式显示报告。

谢谢!

3 个答案:

答案 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和描述,而无需重写大量代码。

相关问题