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