我有两列,每列都有从不同数据表中引入的标识号。
如果它们不同,我想将它与两个标识号组合成一列,但如果它们相同则只有一个标识号。
我正在使用SELECT DISTINCT CONCAT(column 1, column 2) AS column 3
来合并列,但无法过滤掉UNIQUE
个组合。
当我尝试WHERE column 1 <> column 2
时,收到错误消息。
有什么建议吗?
答案 0 :(得分:1)
您可以使用CASE WHEN
来测试条件:
SELECT DISTINCT CASE WHEN column1 = column2 THEN column1
ELSE CONCAT(column1, column2)
END AS column3
FROM table1
答案 1 :(得分:0)
尝试使用IIF或CASE和CONCAT
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
答案 2 :(得分:0)
您应该执行以下操作:
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会丢失一些信息 - 原始部分是什么。