UNPIVOTコード>
列を行に変換する関数:
select id, valuefrom yourtableunpivot( value for col in ([fName], [lName], [Address], [PostCode], [ContactNumber])) unpiv
プレ>デモによる SQL Fiddle を参照してください。 .
アンピボット すべての列のデータ型が同じである必要があります。そのため、
キャスト
を実行する必要がある場合があります /変換
これに似た異なるデータ型の列:select id, valuefrom( select id, [fName], [lName], [Address], [PostCode], cast([ContactNumber] as varchar(15)) [ContactNumber] from yourtable) srcunpivot( value for col in ([fName], [lName], [Address], [PostCode], [ContactNumber])) unpiv;
プレ>SQL Fiddle with Demo を参照してください。 .
SQL Server 2008 以降、これは
CROSS APPLY
を使用して記述することもできますVALUES
で :select t.id, c.valuefrom yourtable tcross apply( values(fName), (lName), (Address), (PostCode), (cast(ContactNumber as varchar(15)))) c (value )コード> プレ>
デモによる SQL Fiddle を参照してください。