MySQL 将 "ORDER BY"子句应用于 UNION 查询

标签 mysql sql database

ALTER PROCEDURE [dbo].[SP_GET_DDLPage]
AS
BEGIN
    SELECT NULL AS 'ID', '--None--' AS 'DSC'
    UNION
    SELECT MSP_NM AS 'ID', MSP_TITLE AS 'DSC'
    FROM MST_PAGE
    WHERE MSP_STS = ACTIVE ORDER BY MSP_NM
END

我收到一条错误消息:

MSP_NM is an invalid column

如何修复此查询并按 MSP_NM 订购?

最佳答案

我认为最好使用子查询:

SELECT *
FROM (SELECT NULL AS ID, '--None--' AS DSC
      UNION ALL
      SELECT MSP_NM AS ID, MSP_TITLE AS DSC
      FROM MST_PAGE
      WHERE MSP_STS = 'ACTIVE'
     ) t
ORDER BY ID;

您需要在 'ACTIVE' 周围加上引号,并且您可能可以在没有子查询的情况下运行查询 - 我只是认为子查询澄清了意图。

关于MySQL 将 "ORDER BY"子句应用于 UNION 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27630546/

相关文章:

c# - 性能 - 使用 LINQ 删除多个 MSSQL 数据库条目

mysql - 查询根据列条件返回行

php - 表单搜索问题php

python - 倒排索引是如何存储的?

javascript - InfluxDB Node 模块不插入数据

c# - EF 多个不同版本的数据库

android - Room SQL 自动生成主键返回 0 或 null

c# - 无法连接到在线Mysql数据库(c#)

java - Oracle NoSQL 数据库 — 使用它进行开发

android - Android:将音频和视频文件分组