2013-02-07 45 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