【发布时间】:2021-12-27 13:54:15
【问题描述】:
大家好,我创建了一个缩放器函数,我希望将参数 @aCOURSENAME 传递为 null,但是当我尝试在没有参数的情况下执行它时,它会给出参数不足的错误。 为什么会发生,尽管我将 null 作为参数传递给函数
这是我的功能
CREATE FUNCTION UFN_XX_GETSTUCOUNT_ONCOURSE(@aCOURSENAME VARCHAR(20) = NULL)
RETURNS INT
AS
BEGIN
RETURN (SELECT COUNT(SID) AS STUDENT FROM BATCH B
INNER JOIN ENROLLMENT E
ON B.BATCHID = E.BATCHID
INNER JOIN COURSE C
ON C.COURSEID = B.COURSEID
WHERE COURSENAME = @aCOURSENAME
GROUP BY COURSENAME)
END
GO
SELECT DBO.UFN_XX_GETSTUCOUNT_ONCOURSE()
执行时不带参数会报参数不足的错误。
【问题讨论】:
-
我觉得你还是需要传入
null或者DEFAULT -
您的请求是关于什么 DBMS?这是 SQL Server 吗?请始终使用您的 DBMS 标记您的 SQL 请求。
-
如果您的参数为空,那么您的
WHERE条件是错误的。应该是WHERE COURSENAME IS NULL。为了使其工作,您需要一个合并函数,它将NULL替换为有效值。
标签: sql sql-server database postgresql