【问题标题】:Merge as Single Query合并为单个查询
【发布时间】:2017-03-24 10:00:41
【问题描述】:

查询 STATION 中两个城市的 CITY 名称最短和最长,以及它们各自的长度(即:名称中的字符数)。如果有多个最小或最大的城市,请选择按字母顺序排列在前的城市。

SELECT CITY,CHAR_LENGTH(CITY) AS CHARLENGTH 
FROM STATION 
ORDER BY CHARLENGTH ASC 
LIMIT 1;

SELECT CITY,CHAR_LENGTH(CITY) AS CHARLENGTH 
FROM STATION 
ORDER BY CHARLENGTH DESC 
LIMIT 1;

【问题讨论】:

    标签: mysql sql


    【解决方案1】:

    这样的?

    ##DROP TABLE STATION;
    CREATE TABLE STATION (CITY VARCHAR(100));
    INSERT INTO STATION VALUES ('aaaaaaa');
    INSERT INTO STATION VALUES ('bbbbbbb');
    INSERT INTO STATION VALUES ('cccc');
    INSERT INTO STATION VALUES ('dd');
    SELECT * 
    FROM 
    (SELECT CITY,CHAR_LENGTH(CITY) AS CHARLENGTH FROM STATION ORDER BY CHARLENGTH ASC, CITY LIMIT 1) A
    UNION ALL
    SELECT * FROM 
    (SELECT CITY,CHAR_LENGTH(CITY) AS CHARLENGTH FROM STATION ORDER BY CHARLENGTH DESC, CITY  LIMIT 1) B
    

    输出:

        CITY    CHARLENGTH
    1   dd  2
    2   aaaaaaa 7
    

    【讨论】:

      猜你喜欢
      • 2021-03-12
      • 1970-01-01
      • 2016-02-05
      • 2019-07-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多