创建用户定义函数时使用AS定义输出列别名出现语法错误
问题原因与解决方法
你遇到的错误是因为标量值函数内部的赋值SELECT语句不能使用列别名。你的函数是返回单个INT值的标量函数,这里的SELECT @return = MIN(price)是把聚合结果直接赋值给变量,不是用来生成带列名的结果集,所以加AS 'Lowest Price'属于语法错误。
修正后的函数代码
去掉多余的别名即可,函数只需要完成计算并返回值:
CREATE FUNCTION findlowprice (@oc AS INT) RETURNS INT AS BEGIN DECLARE @return INT SELECT @return = MIN(price) FROM online_warehouse WHERE object_code = @oc RETURN @return END;
如何显示别名
如果希望查询结果里显示'Lowest Price'这个列名,在调用函数的时候添加别名即可,比如:
SELECT dbo.findlowprice(1001) AS 'Lowest Price';
内容的提问来源于stack exchange,提问作者Castaspella
相关产品推荐
相关产品推荐

