sql >> データベース >  >> RDS >> Sqlserver

結果セットを 2 列のみで取得する SQL クエリ

    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 を参照してください。



    1. Java System.currentTimeMillis()と同等のOracle?

    2. plpython3uプロシージャ内でPythonパッケージをインポートするときにモジュールが見つかりません

    3. SQLの使用方法-INSERT...ON DUPLICATE KEY UPDATE?

    4. トリガーを使用してOraclePLSQLに代理キーを設定する利点