You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

多子查询CTE应用问题:按城市生成指定值的拼接组合

解决方案

要实现每个城市内部生成Col1为'val'和'val2'的Col2拼接组合,只需要在原有CTE的基础上,去掉固定城市的条件,转而通过city字段关联两个CTE,保证仅对同一城市内的记录做笛卡尔积即可。

正确SQL语句

WITH cte_val AS (
  SELECT city, col2 FROM Combination 
  WHERE Col1 = 'val'
), 
cte_val2 AS (
  SELECT city, col2 FROM Combination 
  WHERE Col1 = 'val2'
) 
SELECT 
  cte_val.city,
  CONCAT(cte_val.Col2, cte_val2.Col2) AS Result 
FROM cte_val
JOIN cte_val2 ON cte_val.city = cte_val2.city;

逻辑说明

  1. cte_val筛选出所有城市中Col1为'val'的记录,保留city和col2字段;
  2. cte_val2筛选出所有城市中Col1为'val2'的记录,同样保留city和col2字段;
  3. 通过cte_val.city = cte_val2.city关联两个CTE,确保仅对同一城市内的val和val2记录做拼接组合,避免跨城市的无效组合;
  4. 输出时同时携带city字段,方便区分不同城市的结果。

测试结果(基于你提供的数据)

cityResult
Telang14513
Telang14525
karim146124
karim14656

你尝试语句的问题

你写的语句存在两个问题:

  • 表名拼写错误:select city from Combinations中的Combinations应该是Combination;
  • 逻辑不符需求:该语句仅筛选出Col1为'value'的记录,完全没有实现拼接组合的逻辑,自然无法达到预期效果。

内容的提问来源于stack exchange,提问作者ls440

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 19:55:22