首页 > 解决方案 > 带有条件语句和内部联接的 SQL

问题描述

我有两个表表 1 和表 2 我想根据同一个表上的列连接表 1 中的两列 我应该把条件放在哪里?我尝试了 Case-When-Then-Else-End 无济于事。

SELECT (table1.A,table1.B,tableC.A, 
CONCAT (table1.A,table 1.B ) as table1.D from table1
INNER JOIN tableC ON table1.A = tableC.A

table1
A     B      C (columns)
joy  apple   good
mel  for     bad

条件是:如果 C = 'good' 然后连接 A+B 否则只使用 B 列中的值

结果将是

table1
A     B      C        D 
joy  apple   good    joyapple
mel  for     bad     for

标签: sqlsql-server

解决方案


SELECT table1.A, table1.B, tableC, 
       CASE C WHEN 'good' THEN CONCAT(table1.A, table1.B)
              WHEN 'bad'  THEN table1.A
       END AS D
from   table1
       INNER JOIN tableC ON table1.A = tableC.A

推荐阅读