如何将拆分c1列的SQL逻辑整合到关联查询中?
在关联查询中集成C1列的拆分逻辑
直接把第一个查询里拆分c1的两个CASE表达式,替换第二个查询SELECT子句中的原始c1字段即可,同时可以给拆分后的列起别名方便使用。
完整的SQL代码如下:
SELECT -- 替换原始c1为拆分后的两个字段 CASE WHEN C1 LIKE '% %' THEN LEFT(c1, CHARINDEX(' ', c1) -1) ELSE c1 END AS c1_part1, -- 别名可自定义 CASE WHEN c1 LIKE '% %' THEN RIGHT(c1, CHARINDEX(' ', REVERSE(c1)) -1) END AS c1_part2, -- 别名可自定义 c2, c3, c4, c5, c6, c7 FROM Table1 JOIN Table2 ON c3 = t2c2 WHERE c4 = 'A' AND c5 = ' ' -- 注意原语句末尾的AND需要补充完整条件,否则会触发语法错误
逻辑说明
- 第一个
CASE表达式:当c1包含空格时,提取空格前的部分;否则直接返回原c1内容,别名c1_part1可按需修改。 - 第二个
CASE表达式:当c1包含空格时,提取空格后的部分;若没有空格则返回NULL,别名c1_part2可按需修改。
内容的提问来源于stack exchange,提问作者Joshua Thurman
相关产品推荐
相关产品推荐

