データベースに、同じ種類のデータを含む 9 つの列を持つテーブルがあります。これらの値はnull にすることができます。null 以外の値のそれぞれを、元の行の ID を気にしない値の単一の列に選択する必要があります。
したがって、次のようなテーブルの場合:
+---------+------+--------+------+
| Id | I1 | I2 | I3 |
+---------+------+--------+------+
| 1 | x1 | x2 | x7 |
| 2 | x3 | null | x8 |
| 3 | null | null | null|
| 4 | x4 | x5 | null|
| 5 | null | x6 | x9 |
+---------+------+--------+------+
x で始まる各値を 1 つの列に選択したいと考えています。結果のデータは次の表のようになります。順序を維持する必要があるため、最初の行の最初の列の値が一番上にあり、最後の行の最後の列の値が一番下にある必要があります。
+-------+
| value |
+-------+
| x1 |
| x2 |
| x7 |
| x3 |
| x8 |
| x4 |
| x5 |
| x6 |
| x9 |
+-------+
SQL Server 2008 R2を使用しています。各列の値を各行から順番に選択し、null 以外の値を結果に挿入するよりも、これを達成するためのより良い手法はありますか?