gpt4 book ai didi

mysql - 从表中获取列名称,其中值为零

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

我有一个查询,可以从 DefaultersTable 返回此数据

Select CustomerID, RoleID FROM DefaultersTable Where DefaulterValue = 1

CustomerID, RoleID
10034 34
15481 37

现在我有了另一个表“DefaultersDetails”,其中包含它们的单独每月值,

所以我愿意

Select * from DefaultersDetails Where CustomerID = 10034 AND RoleID = 34.

并获取数据

CustomerID, RoleID, ValueForJan, ValueForFeb, ValueforMar
10034 34 45 0 32

请注意,我在第一种情况下得到此条目只是因为其中一个值为 0。

现在我怎样才能在单个查询中获取这两个数据,我想要这样的东西

CustomerID, RoleID, ZeroValueForMonth 
10034 34 ValueForFeb
15481 37 ValueForJan

我想这可以通过临时表来完成,但我不知道如何做到这一点

最佳答案

您可以使用COALESCE功能。试试这个:

SELECT d.CustomerID, d.RoleID, 
COALESCE(detail.JAN,detail.FEB,detail.MAR) AS ZeroValueForMonth
FROM DefaultersTable d
INNER JOIN
(
SELECT CustomerID, RoleID,
(CASE WHEN ValueForJan <> 0 THEN NULL ELSE 'ValueForJan' END) JAN,
(CASE WHEN ValueForFeb <> 0 THEN NULL ELSE 'ValueForFeb' END) FEB,
(CASE WHEN ValueForMar <> 0 THEN NULL ELSE 'ValueForMar' END) MAR
FROM Defaultersdetail
) AS detail
ON detail.CustomerID = d.CustomerID AND detail.RoleID = d.RoleId
where d.DefaulterValue = 1

您可以在子查询中添加其他月份,例如 MAY、JUN 等:

(CASE WHEN ValueForApr <> 0 THEN NULL ELSE 'ValueForApr' END) APR

关于mysql - 从表中获取列名称,其中值为零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28298852/

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