我正在存储过程中使用以下select语句从表中获取数据,并且该函数具有为其中一列返回JSON的功能。我在查询中做错了什么?
函数GetRecordComments
需要两个参数,第一个是每行的RecordID
。但是,当我使用此查询时,出现以下错误。如何调用将recordID作为参数传递给每一行的函数?
查询:
SELECT
RercordID, Name, Region,
dbo.GetRecordComments((SELECT RecordID
FROM RecordList
WHERE RecordID = a.RecordID), 1),
[Address],
dbo.GetRecordComments((SELECT RecordID
FROM RecordList
WHERE RecordID = a.RecordID), 2)
FROM
RecordList AS a
错误:
子查询返回了多个值。当子查询遵循=,!=,,> =或将子查询用作表达式时,不允许这样做。
SELECT rl.RecordID, rl.Name, rl.Region,
dbo.GetRecordComments(rl.RecordID, 1),
rl.Address,
dbo.GetRecordComments(rl.RecordID, 2)
FROM RecordList rl;
您应该知道,此类用户定义的函数通常是性能杀手。我的猜测是您有一个注释表。通常最好使用显式JOIN
。