2013-02-07 44 views
0

我不是SQL Server专家。我正在尝试执行查询。该查询依赖于一个功能来分割CSV并在表上进行连接。它看起来像下面的一个非常基本的查询:SQL查询无效 - 指定非布尔类型

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

什么是'ConvertIDListToTable'?它返回什么? – Oded

+0

带有名为“item”的列的表格。用上面的例子,返回4条记录。记录1:1,记录2:2记录3:3,记录4:4. – user70192

+0

该函数是否返回一个整数或字符串表的表格? ID是一个i​​nt还是一个字符串? –

回答

1

在句法上,您的INNER JOIN应该在您的WHERE声明之前,此外,您不需要在这里声明WHERE

不知道的ConvertIDListToTable确切的代码是一个障碍,但假设它返回一个表,我想你需要:

SELECT * 
FROM dbo.ConvertIDListToTable('1,2,3,4', ',') l 
INNER JOIN Order o ON l.item=o.ID 
0

我相信这个查询结构是从MySQL

在SQL Server中,你会写这样的:

SELECT 
    * 
FROM 
[Order] o 
Inner join dbo.ConvertIDListToTable('1,2,3,4', ',') l 
    ON l.item=o.ID