我有一个包含20列的表,它们都显示相同的内容。我不确定为什么我的公司会这样设置,但我无法对表进行更改。
考虑到这一点,这就是我需要做的事情。我需要用保险公司名称填写下拉列表。因此,我需要在整个表格中找到唯一的值。
使用Group By
子句是不可能的,因为我需要在整个表中使用唯一值。没有单个列包含所有可能的值。我唯一的想法是将表格的所有列组合在一起。我已经看到这使用两个管道(||)完成。但这连接了对我没用的列。
我需要将两个(或二十个)列连接在一起并将它们的行添加到一起。即如果我从20列和100行开始,我需要有一列2000行。这样我就可以使用Group By子句选择唯一值。
非常感谢任何帮助!
我想要完成的样本:
示例原始表:
--Ins1-----Ins2---Ins3---Ins4-
Medicaid-Medicare-------------
---------Medicaid-----No 485--
Blue Cross--------------------
-------Home Health----Medicare
表I我需要构建:
--Column1--
-Medicaid--
-----------
Blue Cross-
-----------
-Medicare--
-Medicaid--
-----------
Home Health
-----------
-----------
-----------
-----------
-----------
--No 485---
-----------
-Medicare--
也许我的逻辑错了。这是我在整个表格中找到唯一信息的唯一方法。
答案 0 :(得分:5)
如果这是SQL Server,那么您需要使用UNPIVOT来执行此转换。
示例UNPIVOT(请参见SQL Fiddle演示):
select ques, answer
FROM t1
unpivot
(
answer
for ques in (col1, col2, col3, col4)
) u
UNPIVOT会将您的数据从列转换为行。