【问题标题】:Dynamic query in SSIS expression builder throwing an error expression cannot be evaluated无法评估抛出错误表达式的 SSIS 表达式生成器中的动态查询
【发布时间】:2023-02-17 23:10:50
【问题描述】:

我正在编写一个示例来编写动态 sql 以在 ssis 表达式生成器中转换数据。它无法评估表达式。下面是动态查询:

 DECLARE @Cols as NVARCHAR(MAX)
 DECLARE @SQL as NVARCHAR(MAX)
 
SELECT @Cols = COALESCE(@Cols + ', ','') + QUOTENAME(Name)
FROM
   (
     SELECT DISTINCT Category
     FROM Product
   ) As t1

SET @SQL = 'SELECT *
FROM
(
    SELECT ProductID,
    Category,
    Quantity
    FROM   Product
) as PivotData
PIVOT
(
   COUNT(Quantity)
   FOR Category IN (" + @Cols + ")
) AS PivotResult'

【问题讨论】:

    标签: ssis dynamic-sql expressionbuilder


    【解决方案1】:

    我认为 + @Cols 周围的双引号需要是单引号,见下文。

    DECLARE @Cols as NVARCHAR(MAX)
     DECLARE @SQL as NVARCHAR(MAX)
     
    SELECT @Cols = COALESCE(@Cols + ', ','') + QUOTENAME(Name)
    FROM
       (
         SELECT DISTINCT Category
         FROM Product
       ) As t1
    
    SET @SQL = 'SELECT *
    FROM
    (
        SELECT ProductID,
        Category,
        Quantity
        FROM   Product
    ) as PivotData
    PIVOT
    (
       COUNT(Quantity)
       FOR Category IN (' + @Cols + ')
    ) AS PivotResult'
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-12-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-30
      • 1970-01-01
      相关资源
      最近更新 更多