我有一个数据库视图,其中一列基于标量函数的结果(我知道,坏主意)。函数 return 会将空值转换为空字符串,但是,当未返回值时,我的视图需要显示空值。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 语句或任何其他解决方案对每条记录进行一次函数调用?