我有一个非常简单的查询,它调用一个用逗号分割字段的UDF。查询是
select top 10 * FROM Emails e WHERE EXISTS(SELECT TOP 1 1 FROM dbo.fn_Split(e.committees,','))
当我运行/解析它时,我得到:
Msg 170, Level 15, State 1, Line 4
Line 4: Incorrect syntax near '.'.
我认为它必须与SQL 2000有关。如果你为ecmittees切换硬编码的东西(即'A,B,C,D'),它可以正常工作。
答案 0 :(得分:0)
SQL 2000不支持将列名传递给TVF。这是在SQL2005中与CROSS APPLY
我不确定你在这里需要做什么。 e.committees
是非1NF的数字委员会ID列表吗?如果是的话
select top 10 <column-list>
FROM Emails e
WHERE e.committees
like '%[0-9]%'
ORDER BY ...
可能会有效,但更好的解决方案是将这些标准格式存储在包含email_id
,committee_id
列或其他内容的表格中。这可能会使您的查询更容易!