对于我正在使用 SQL Server 处理的查询,我需要一些帮助。
该查询获取特定类别的搜索字段信息,并使用它返回按该类别中的配置文件数量排序的配置文件列表。
我需要使用 wn.sqlcheck 字段中包含的信息运行查询。然后按sectionCount 排序。
查询
SELECT wc.name,
(SELECT count(*) FROM facilities WHERE wc.sqlcheck) AS sectionCount
FROM webcategories wc
WHERE wc.parentid = 1
ORDER BY sectionCount
网络类别示例
parentid | name | sqlcheck
-----------------------------------------
1 | categorytitle | (highcaretotalnumberbeds > 0 AND highcaredoubleroomsyn = 1)
1 | categorytitle2 | (othernumberbeds > 0 AND otherdoubleroomsyn = 1)
我现在正在使用存储过程
SET @sqlcheck = (select sqlcheck from webcategories where parentid=1)
EXEC('SELECT wc.id, wc.name,
(SELECT count(id) FROM facilities WHERE '+@sqlcheck+') AS sectionCount
FROM webcategories wc
WHERE wc.parentid = 1
ORDER BY sectionCount')
发生此错误:
子查询返回超过 1 个值。当子查询跟随 =、!=、<、<=、>、>= 或子查询用作表达式时,这是不允许的。
这是因为 parentid = 1 的子查询返回了多行。