2012-01-05 65 views
1

我試圖用表值函數的加入, 它給了我錯誤此錯誤:'。'附近的語法不正確在SQL Server表值函數

消息170,級別15,狀態1,2號線 2號線:附近有語法錯誤'。

SELECT * from tbl t 
inner join dbo.ufn_CSVToTable(t.text) a 
on t.text = a.String 

什麼可以是錯誤?

+0

「(t.text)」是什麼意思? – Baatar 2012-01-05 20:28:20

+0

請發佈代碼後面的代碼 - 否則無法幫助您。 – Eric 2012-01-05 20:28:42

+0

文本是表tbl中的列名。 – Sami 2012-01-05 20:29:49

回答

3

嘗試使用CROSS APPLY代替JOIN

SELECT * from tbl t 
CROSS APPLY dbo.ufn_CSVToTable(t.text) a 
WHERE t.text = a.String 
+0

錯誤:消息170,級別15,狀態1,行2 行2:'APPLY'附近語法不正確。 – Sami 2012-01-05 20:37:05

+2

需要兼容級別90或更高http://msdn.microsoft.com/en-us/library/bb510680.aspx – gbn 2012-01-05 22:01:54

0

也許嘗試是一個有點更加明確 -

SELECT * from tbl 
inner join dbo.ufn_CSVToTable(tbl.text) a 
on tbl.text = a.String