我不是SQL Server专家。我正在尝试执行查询。该查询依赖于拆分CSV并在表上进行连接的功能。它是一个非常基本的查询,如下所示:
SELECT
*
FROM
[Order]
WHERE
dbo.ConvertIDListToTable('1,2,3,4', ',') l INNER JOIN Order o ON l.item=o.ID
当我执行查询时,出现以下错误:
An expression of non-boolean type specified in a context where a condition is expected, near 'l'.
我做错了什么?这必须是句法上的东西。我一直盯着它,但每一个看起来都对我不对。谢谢。
答案 0 :(得分:1)
从语法上讲,您的INNER JOIN
应该在WHERE
语句之前,此外,您不需要WHERE
语句。
不知道ConvertIDListToTable
的确切代码是一个障碍,但假设它返回一个表,我认为你需要:
SELECT *
FROM dbo.ConvertIDListToTable('1,2,3,4', ',') l
INNER JOIN Order o ON l.item=o.ID
答案 1 :(得分:0)
您不能在WHERE子句中使用JOIN。这确实是一个语法问题。
查看SQL Server SELECT语法:http://msdn.microsoft.com/en-us/library/ms189499.aspx
您应该在WHERE子句之前加入。如果您想要更多的查询帮助,请说明您希望它做什么。
答案 2 :(得分:0)
我相信这个查询结构来自mysql
在SQL Server中,您可以这样写:
SELECT
*
FROM
[Order] o
Inner join dbo.ConvertIDListToTable('1,2,3,4', ',') l
ON l.item=o.ID