[英]calling functions in IN operators
我寫了一個 function (dbo.fFunctionCols) 有 2 個參數(第一個是表名,第二個是列名的搜索模式),它從表中返回某些列名並將它們傳遞給下面的查詢,其中同一個表是非透視的。 查詢最終應該是一個視圖。
SELECT Id, AB, vTime, vItem, vCount
FROM
(SELECT Id, AB, vTime,
dbo.fFunctionCols('tablename', 'abc%def')
FROM dbo.[tablename]) AS piv
UNPIVOT
(vCount FOR vITEM IN
(SELECT dbo.fFunctionCols('tablename', 'abc%def') AS t1
) AS unpiv;
GO
SQL 服務器總是返回:
Msg 156, Level 15, State 1, Line 8
Incorrect syntax near the keyword 'SELECT'.
Msg 102, Level 15, State 1, Line 8
Incorrect syntax near ')'.
語句: SELECT dbo.fFunctionCols('tablename', 'abc%def') AS t1 如果執行正常工作。 它提供了相關列名的正確列表,用逗號分隔並用方括號括起來。
錯誤是什么? 為什么 function 不能在 IN 運算符內部使用?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.