Sql server 无效的SQL查询-指定了非布尔类型
我不是SQL Server专家。我正在尝试执行一个查询。查询依赖于一个函数来拆分CSV并在表上执行联接。这是一个非常基本的查询,如下所示:Sql server 无效的SQL查询-指定了非布尔类型,sql-server,Sql Server,我不是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 con
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'.
我做错了什么?这一定是句法上的。我一直盯着它看,但每一个符号在我看来都是正确的。谢谢。从语法上讲,您的
内部连接应该位于WHERE
语句之前,此外,这里不需要WHERE
语句
不知道convertidleisttotable
的确切代码是一个障碍,但假设它返回一个表,我认为您需要:
SELECT *
FROM dbo.ConvertIDListToTable('1,2,3,4', ',') l
INNER JOIN Order o ON l.item=o.ID
不能在WHERE子句中使用联接。这确实是一个语法问题
查看SQL Server SELECT语法:
您应该在WHERE子句之前加入。如果您希望查询得到更多帮助,请澄清您希望它做什么 我相信这个查询结构来自mysql
在SQL Server中,您可以这样编写:
SELECT
*
FROM
[Order] o
Inner join dbo.ConvertIDListToTable('1,2,3,4', ',') l
ON l.item=o.ID
什么是convertidleisttotable
?它返回什么?一个包含一列名为“item”的表。在上面的示例中,返回4条记录。记录1:1、记录2:2、记录3:3和记录4:4。函数是否返回INT表或字符串表?ID是整数还是字符串?