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

如何将表内两个列的数据整合到查询的同一个字段中展示

实现方案

你需要的是将多列转为多行的列转行操作,不同数据库可选择的实现方式如下:

  • 所有支持UNION ALL的数据库通用方案
    这是兼容性最高的写法,不需要依赖数据库独有的语法:
SELECT DepartureDate1 AS `DepartureDate1&2` FROM `Table`
UNION ALL
SELECT DepartureDate2 AS `DepartureDate1&2` FROM `Table`

如果需要对原表加过滤条件,推荐统一套在子查询中,避免重复写WHERE条件:

SELECT `DepartureDate1&2` FROM (
    SELECT DepartureDate1 AS `DepartureDate1&2`, 过滤所需字段 FROM `Table`
    UNION ALL
    SELECT DepartureDate2 AS `DepartureDate1&2`, 过滤所需字段 FROM `Table`
) t
WHERE 你的过滤规则
  • 支持高级语法的数据库简化方案
    如果你使用的是较新版本的商业数据库,可以用更简洁的专属语法:
    1. SQL Server/Oracle可用UNPIVOT语法:
    SELECT `DepartureDate1&2`
    FROM `Table`
    UNPIVOT (
        `DepartureDate1&2` FOR date_col IN (DepartureDate1, DepartureDate2)
    ) upvt
    
    1. PostgreSQL/MySQL 8.0.19+可用LATERAL + VALUES语法:
    SELECT v.`DepartureDate1&2`
    FROM `Table` t
    CROSS JOIN LATERAL (
        VALUES (t.DepartureDate1), (t.DepartureDate2)
    ) v(`DepartureDate1&2`)
    

补充说明:如果不需要保留两个字段中的NULL值,可在查询末尾添加WHERE DepartureDate1&2 IS NOT NULL过滤无效行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:24:01