You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在标量函数中使用SELECT CASE?及标量函数RETURN语法错误排查

解决标量函数中SELECT CASE的语法错误问题

你遇到的问题根源在于标量函数的RETURN语句不能直接包裹SELECT查询——标量函数要求返回单个值,而SELECT会生成一个结果集,这就导致了语法报错。

我们可以直接把CASE表达式作为RETURN的参数,不需要外层的SELECT,修改后的代码如下:

CREATE FUNCTION IsSumEqualToTen ( @number1 INT, @number2 INT )
RETURNS BIT
AS
RETURN 
    CASE WHEN (@number1 + @number2) = 10 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END

如果后续你的函数逻辑更复杂,需要多行代码处理,也可以用BEGIN...END块来包裹逻辑:

CREATE FUNCTION IsSumEqualToTen ( @number1 INT, @number2 INT )
RETURNS BIT
AS
BEGIN
    DECLARE @result BIT
    SET @result = CASE WHEN (@number1 + @number2) = 10 THEN CAST(1 AS BIT) ELSE CAST(0 AS BIT) END
    RETURN @result
END

这样修改后,函数就能正常运行:当两个输入整数之和等于10时返回1(BIT类型),否则返回0。

内容的提问来源于stack exchange,提问作者Matt Arnold

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 06:43:37