0

我有一个包含 20 列的表,它们都显示相同的内容。我不确定为什么我的公司会这样设置,但我无法对表格进行更改。

考虑到这一点,这就是我需要做的。我需要用保险公司名称填充下拉列表。因此,我需要在整个表中找到唯一值。

使用Group By子句是不可能的,因为我需要整个表中的唯一值。没有一列包含所有可能的值。我唯一的想法是将表格的所有列组合在一起。我已经看到使用两个管道( || )完成了这项工作。但这连接了对我没有帮助的列。

我需要将两个(或二十个)列连接在一起并将它们的行加在一起。即,如果我开始时有 20 列和 100 行,我需要有一列有 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 回答