有没有办法让SQL语句从一个以整数作为键的映射中返回一个字符串值?

Bri*_*nan 2 sql sql-server select

例如:

在数据库中,我们有与应用程序中的字符串对应的字段的数字表示.出于大小和速度的原因,我们将数据存储为整数.在测试期间,我们将应用程序中的内容与SQL语句结果进行比较.问题是我们在结果中看到数字,但应用程序中有字符串.代码中有一个枚举,用于定义这些数字在字符串方面的含义.而不是每次我想要比较时都要查看枚举...有没有办法让SQL结果显示我放在SQL select语句中的字符串中的字符串而不是数据库中实际存在的整数值?

Red*_*ter 8

您可以Enum使用如下CASE语句重新创建SQL :

select map,
    case map
        when 123 then 'xyz'
        when 456 then 'abc'
    end as StringMap
from MyTable
Run Code Online (Sandbox Code Playgroud)

更好的是将Enum存储为查找表.然后你可以加入反对它:

select m.map, e.StringMap
from MyTable m
inner join MyLookupTable e on m.map = e.map
Run Code Online (Sandbox Code Playgroud)