gpt4 book ai didi

sql - 如何在不多次调用函数的情况下在 case 语句中使用函数调用

转载 作者:行者123 更新时间:2023-12-02 17:43:24 25 4
gpt4 key购买 nike

我有一个数据库 View ,其中一列基于标量函数的结果(我知道,这是个坏主意)。函数返回会将空值转换为空字符串,但是,当未返回值时,我的 View 需要显示空值。 case 语句的语法文档似乎没有给我答案。我的“一厢情愿”解决方案是给函数调用一个别名,然后在 case 语句中引用该别名,如下所示:

SELECT
p.Name,
CASE GetWinningTeam(p.id, 'WON') AS Winner
WHEN '' THEN NULL
ELSE Winner
END as WinningTeam
FROM
Projects p

代替

 SELECT
p.Name,
CASE GetWinningTeam(p.id, 'WON')
WHEN '' THEN NULL
ELSE GetWinningTeam(p.id, 'WON')
END as WinningTeam
FROM
Projects p

但是,这不是有效的语法。有没有办法使用 case 语句或任何其他解决方案使每条记录只调用一个函数?

最佳答案

您可以使用 NULLIF 并去掉 case 语句:

 SELECT p.Name, NULLIF(GetWinningTeam(p.id, 'WON'),'') as WinningTeam
FROM Projects p

关于sql - 如何在不多次调用函数的情况下在 case 语句中使用函数调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17886527/

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