【发布时间】:2021-08-27 13:32:05
【问题描述】:
我试图在我的一个 SQL 存储过程中编写它。只是一个简单的逻辑来检查@kPortalOrigin是否存在于表[cli].[tbl_S_PortalOrigin]中:
IF (COUNT ((SELECT kPortalOrigin
FROM [cli].[tbl_S_PortalOrigin]
WHERE kPortalOrigin = @kPortalOrigin)) = 0)
RAISERROR('Portal Origin is invalid!', 16, 1)
但是,我收到此错误:
无法对包含聚合或子查询的表达式执行聚合函数
有什么帮助吗?谢谢。而且我不介意解释为什么会发生此错误。
【问题讨论】:
-
如果您的表恰好包含数百万行,这将非常无效,并且可能需要很长时间才能完成。我强烈建议您改用
IF EXISTS (....)替代方法 -
您使用的是哪种 DBMS 产品? “SQL”只是所有关系型数据库都使用的一种查询语言,并不是特定数据库产品的名称(标准SQL中也没有
IF)。请为您使用的数据库产品添加tag。 Why should I tag my DBMS
标签: sql