gpt4 book ai didi

mysql - 动态 SQL 查询用其他列中的值填充列

转载 作者:行者123 更新时间:2023-11-29 23:28:26 24 4
gpt4 key购买 nike

我正在尝试为数据质量报告编写 SQL 查询,该报告将多列中的数据质量失败值呈现到一列中。请看下面的例子

事实表

Ac_Nm   INAmt  Ast  Rcs  
123 100 5000 NA
456 200 -200 Yes
789 -300 1000 No

所需输出(填充 VAL 列)

Ac_Nm   Is_Clm  Val  
123 RCS NA
456 Ast -200
789 InAmt -300

如何编写 SQL 查询来填充 Val 列?我已经编写了数据质量报告查询的其余部分。

在上面的示例中,我有一个事实表,其中已在各个列中识别出数据质量问题(负值、应有“是/否”响应的“NA”值等)。我想知道如何编写一个动态 SQL 查询,根据帐号和列名从事实表中返回失败的值。在第一行中,所需的输出列出了帐号 (123),其中问题列名称 (RCS) 包含有问题的值,Val 列列出了导致问题的值 (NA)。我只需要知道如何编写 SQL 查询来根据帐户编号和问题列填充 Val 列。

最佳答案

您可以使用 case 语句来完成此操作,假设只有一列具有“坏”值,如下所示:

SELECT Ac_Nm,
CASE WHEN INAmt < 0 THEN 'INAmt'
WHEN Ast < 0 THEN 'Ast'
WHEN Rcs = 'N/A' THEN 'RCS'
ELSE NULL END AS Is_Clm,
CASE WHEN INAmt < 0 THEN CONVERT(INAmt, char)
WHEN Ast < 0 THEN CONVERT(Ast, char)
WHEN Rcs = 'N/A' THEN Rcs
ELSE NULL END AS Val
FROM fact_table;

然后,要过滤掉 NULL 值,请将查询包装在子查询中并从中进行选择。如果您需要帮助,请给我喊一声。

关于mysql - 动态 SQL 查询用其他列中的值填充列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26768564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com