我有两个列,每个列都有来自不同数据表的标识号。
如果两个标识号不同,我想将其合并到一列中,但如果它们相同,则只有一个标识号。
我正在使用SELECT DISTINCT CONCAT(column 1, column 2) AS column 3组合列,但不能过滤出UNIQUE组合。
当我尝试WHERE column 1 <> column 2时,我得到一条错误消息。
有什么建议吗?
发布于 2018-01-23 07:46:35
您可以使用CASE WHEN测试条件:
SELECT DISTINCT CASE WHEN column1 = column2 THEN column1
ELSE CONCAT(column1, column2)
END AS column3
FROM table1发布于 2018-01-23 07:31:57
尝试使用IIF或CASE并连接
select
distinct
iif(col1<>col2,concat(col1,col2),col1) [myid]
from mytable或
select
distinct
case when col1<>col2 then
concat(col1,col2)
else col1 end [myid]
from mytable发布于 2018-01-23 11:56:49
你应该这样做:
SELECT DISTINCT CASE WHEN column1 = column2 THEN column1
ELSE column1 + '|' + column2
END AS combinedColumn
FROM table1请考虑以下图表:
column1 column2 column1+column2 column1+'|'+column2
12 34 1234 12|34
123 4 1234 123|4
1234 1234 1234 1234此外,column1+column2还会丢失一些信息--原始部分是什么。
https://stackoverflow.com/questions/48391894
复制相似问题