“。”附近的语法不正确 - 非常简单的查询

时间:2010-08-09 22:15:56

标签: sql-server-2000

我有一个非常简单的查询,它调用一个用逗号分割字段的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'),它可以正常工作。

1 个答案:

答案 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_idcommittee_id列或其他内容的表格中。这可能会使您的查询更容易!