我有以下有效的查询:
SELECT
STUFF
(
(
SELECT
', ' + RTRIM(LTRIM(ulastname))
FROM
ROOM r LEFT JOIN person p ON p.hmy = r.hmyperson
WHERE 1=1
AND r.hmytenant = t.hmyperson
FOR XML PATH('')
)
, 1
, 2
, ''
)
FROM unit u
LEFT JOIN tenant t ON u.hproperty = t.hproperty
WHERE 1=1
AND t.hmyperson = 71
AND u.hmy = 19但是,我需要做的是在最里面的select语句中使用一个函数来返回正确的值。我已经编写了如下查询:
SELECT
STUFF
(
(
SELECT
', ' + RTRIM(LTRIM(fullname))
FROM
SMS_All_Occupants(u.hmy, 'Y', t.hmyperson) occ
WHERE 1=1
AND TYPE = 'T'
AND LESSEE = 'Y'
ORDER BY
occ.relation asc
FOR XML PATH('')
)
, 1
, 2
, ''
)
FROM unit u
LEFT JOIN tenant t ON u.hproperty = t.hproperty
WHERE 1=1
AND t.hmyperson = 71
AND u.hmy = 19此查询总是失败,并显示“‘.’附近的语法不正确”,这似乎与传递给函数的u.hmy和t.hmyperson有关。如果我为每个参数输入一个实际值,它就会正常工作。
谁能告诉我我哪里做错了?我看过使用交叉连接的引用,但我不知道如何使用它。
谢谢!!
发布于 2013-05-13 22:04:48
DB兼容级别仍然是"80“吗?如果是这样,则不能将列用作UDF参数
更多信息请点击这里:"Incorrect syntax" using a table-valued function in SELECT clause of T-SQL query
https://stackoverflow.com/questions/16522447
复制相似问题