次のコードを使用して、400 程度の一意の値を持つ列をピボットしようとしています。
Declare @t VARCHAR(10)
Declare @A VARCHAR(1000)
Declare @B VARCHAR(1000)
set @A='SELECT Name, IRIS_ID__c'
SET @B='('
SELECT @A=@A+',['+Question_Concept_With_ImpactArea__c+'] as ['+Question_Concept_With_ImpactArea__c+']',@B=@B+'['+Question_Concept_With_ImpactArea__c+']'
FROM (SELECT DISTINCT Question_Concept_With_ImpactArea__c
FROM Company_Number_Response) cur
-- removing last ',' from both variables
SET @B=SUBSTRING(@B,1,LEN(@B)-1)
SET @A=@A+ + '
FROM
(SELECT NAME, IRIS_ID__c, Selected, Question_Concept_With_ImpactArea__c
FROM Company_Number_Response) s PIVOT (max(Unified_Response__c)
FOR Question_Concept_With_ImpactArea__c IN ' +@B+')) p ORDER BY [IRIS_ID__c];'
exec(@A);
このコードを実行すると、「文字列 'CM_PcCOGSSup' の後の引用符が閉じていません 'CM_PcCOGSSup' 付近の構文が正しくありません
最後のコマンドを exec から print に変更すると、多くの値が読み取られていることがわかりますが、ステートメントは上記のエラーの値で単に途切れています。データを確認しましたが、これを引き起こす文字は見当たりません。さらに、結果が長すぎるのではないかと考え、結果のテキストの最大数を 8192 に変更しました。
どんな助けでも大歓迎です。