我有3个4列,其中3列是不同糖果的值。我想在一列中看到列出的所有糖果:
下面的示例(使用SQL Server):
原始表:
+--------------------+----------+---------+
| ID | Col1 | Col2 |
+---------------------+----------+---------+
| L123 | TWIX | |
+--------------------+----------+---------+
| L124 | TWIX | |
+--------------------+-----------+---------+
| L125 | | m&ms |
+--------------------+----------+---------+
| F143 | | m&ms |
+--------------------+----------+---------+
| F144 | gummies | |
+--------------------+----------+---------+
| F144 | gummies | |
+--------------------+----------+---------+
新表格:
我尝试了联合声明和case
表达式,但是它们看起来既冗长又复杂,或者不起作用。
+--------------------+
| ID | Col1 |
+--------------------+
| L123 | TWIX |
+-------------------+
| L124 | TWIX |
+--------------------+
| L125 | m&ms |
+--------------------+
| F143 | m&ms |
+--------------------+
| F144 | gummies |
+--------------------+
| F144 | gummies |
+--------------------+
答案 0 :(得分:2)
您似乎想要:
select ID, coalesce(Col1, Col2, Col3) as Col1
from table t;
答案 1 :(得分:0)
我认为您的列数据在字符串中没有空格。在这种情况下,您可以执行以下操作:
Select ID, RTRIM(LTRIM(CONCAT(CONCAT(col1,,col2),,col3))) as one_col from table_name
逻辑将col 1,2,3连接起来。最后从中删除前导和尾随空格。这样一来,您就可以从所有三列中的任何一列中获得数据。