0

すべて同じものを表示する 20 列のテーブルがあります。会社がこのように設定した理由はわかりませんが、テーブルを変更することはできません。

それを念頭に置いて、ここに私がする必要があるものがあります。ドロップダウン リストに保険会社の名前を入力する必要があります。したがって、テーブル全体で一意の値を見つける必要があります。

Group Byテーブル全体で一意の値が必要なため、句を使用することは問題外です。単一の列にすべての可能な値が含まれているわけではありません。私の唯一の考えは、テーブルのすべての列を結合することでした。これが 2 つのパイプ ( || ) を使用して行われるのを見てきました。しかし、それは私を助けない列を連結します。

2 つ (または 20) の列を結合し、それらの行を一緒に追加する必要があります。つまり、20 列と 100 行で開始した場合、1 列に 2000 行が必要です。このようにして、Group By 句を使用して一意の値を選択できます。

どんな助けでも大歓迎です!

私が達成しようとしているもののサンプル:

元のテーブルのサンプル:

    --Ins1-----Ins2---Ins3---Ins4-
    Medicaid-Medicare-------------
    ---------Medicaid-----No 485--
    Blue Cross--------------------
    -------Home Health----Medicare

作成する必要があるテーブル:

    --Column1--
    -Medicaid--
    -----------
    Blue Cross-
    -----------
    -Medicare--
    -Medicaid--
    -----------
    Home Health
    -----------
    -----------
    -----------
    -----------
    -----------
    --No 485---
    -----------
    -Medicare--

多分私の論理は間違っています。これは、テーブル全体で一意の情報を見つけることができる唯一の方法です。

4

1 に答える 1

5

これが SQL Server の場合、この変換を実行するにはUNPIVOTを使用する必要があるようです。

UNPIVOT の例 ( SQL Fiddle with Demo を参照):

select ques, answer
FROM t1
unpivot
(
    answer
    for ques in (col1, col2, col3, col4)
) u

UNPIVOT は、データを列から行に変換します。

于 2012-07-25T14:07:48.277 に答える