簡體   English   中英

在 IN 運算符中調用函數

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM