2つの文字列変数を持つ列から列に単純なテーブルを転置しようとしています。私は成功していないウェブからいくつかの例を探しました。行の数は変わるので、テーブルを動的に転置する必要があります。次のコードは、少なくともエラーを生成しませんが、結果を生成しません!ms sqlピボットが動作しません
サンプル表
create table #Encabezado
(
NodeName nvarchar(100),
NodeValue nvarchar(100)
)
INSERT INTO #Encabezado (NodeName, NodeValue) VALUES
('RUTEmisor','88888888-8'),
('RznSoc','EMPRESA DE PRUEBA'),
('GiroEmis','Informatica'),
('Acteco','1'),
('CdgSIISucur','59529595'),
('DirOrigen','Teatinos 120'),
('CmnaOrigen','Santiago'),
('CiudadOrigen','Santiago')
GO
アンピボットコード
DECLARE @colsUnpivot AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
select @colsUnpivot
= stuff((select ','+quotename(C.column_name)
from information_schema.columns as C
where C.table_name = '#Encabezado' and
C.column_name like '%Name'
for xml path('')), 1, 1, '')
set @query
= 'select NodeName,
Nodevalue
from #Encabezado
unpivot
(
NodeName
for NodeName in ('+ @colsunpivot +')
) u'
exec sp_executesql @query;
すべてのヘルプは
ピボットまたはUNPIVOT? 「行を列にする」はピボットを示しますが、コードにはUnPivotがあります。 –