代码之家  ›  专栏  ›  技术社区  ›  Brian T Hannan

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

  •  2
  • Brian T Hannan  · 技术社区  · 14 年前

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

    1 回复  |  直到 14 年前
        1
  •  8
  •   D'Arcy Rittich    14 年前

    你可以重新创建 Enum CASE 这样的陈述:

    select map,
        case map
            when 123 then 'xyz'
            when 456 then 'abc'
        end as StringMap
    from MyTable
    

    更好的方法是将枚举存储为查找表。然后你可以加入反对:

    select m.map, e.StringMap
    from MyTable m
    inner join MyLookupTable e on m.map = e.map