sql - 更改从 SQL Server 数据库获取的数据值

标签 sql node.js sql-server express sequelize.js

我正在为我的项目使用 express、sequelize 和 SQL Server。
我有三个表,我必须从这些数据表中读取列。
我的第一个数据库表如下所示:

在第一个查询中,我选择了 Value 列

SELECT Date_Time, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8 
FROM S001T01
实际上,我必须阅读所有列,但问题从这里开始,所有状态代码都保存在具有不同代码名称的不同表中,例如,
(状态列表)

当我收到发布请求时,我必须发送响应
Value1,Status1,Value2,Status2....
但是,将 status 列中的值替换为 statuslist 表中的等效项。例如,它应该写“Veri Yok”(这意味着土耳其语中没有数据)而不是 0。
我想过为每一列单独编写一个查询并在数组中更改它,但我认为这会花费很多时间。
我试着写
SELECT 
    Status1,
    Status2,  
    CASE Status1
        WHEN 0 THEN 'Veri YOK'
        WHEN 1 THEN 'Veri Geçerli'
    END
FROM S001T01
但是我有 110 个 StatusCodeName,很难为每一列和每一个代码编写。
有没有其他方法可以更改所有列数据?
如果你能帮忙,我会很高兴。

最佳答案

显然,您正在使用糟糕的表格设计,所以这里有一些选择:

  • 因为你有 8 个值,所以加入你的 Statuslist 表八次
  • SELECT Date_Time, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8 
    sl1.StatusUseCode as Status1, ...... sl8.StatusUseCode as Status8,
    FROM S001T01 s
    left join StatusList sl1 on s.Status1=sl1.StatusCode
    left join StatusList sl2 on s.Status2=sl2.StatusCode
    left join StatusList sl3 on s.Status3=sl3.StatusCode
                 :
                 :
    left join StatusList sl8 on s.Status8=sl8.StatusCode
    
  • 另一个选项有点高级

  • 一种。将列转为行
    湾加入状态列表
    C。转回列

    关于sql - 更改从 SQL Server 数据库获取的数据值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66229551/

    相关文章:

    mysql - 如何使用具有特定值的 order by

    php - SQL 清理和 PHP

    javascript - 机器人不会将消息成员添加到 channel - Discord.JS

    node.js - 如何将 Redis 哈希值转换为 JSON?

    javascript - then() 函数是否返回反射(reflect)先前 promise 结果的 promise ?

    sql - 如何在作为变量传递的表名上设置identity_insert

    python - 列代表行值的表

    java - Maven Shade Plugin + MsSQL JDBC -> 即时JNI错误 - Invalid signature file Manifest

    c# - 当我尝试保存新记录或更新现有记录时,EF 返回 0000-0000-0000-xxx 作为 Guid?

    c# - 如何加入with或条件?交叉连接正在创建 IS NULL where 子句