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

SQL查询问题排查:获取最短城市名的语句存在什么错误?

你的SQL查询语句存在的问题
  • 数据库兼容性问题:LIMIT 1是MySQL、PostgreSQL等数据库支持的语法,若在Oracle这类不支持LIMIT的数据库中执行会直接报错。这类数据库需要借助ROWNUM实现行限制,示例写法如下:

    SELECT CITY, LENGTH(CITY)
    FROM (
        SELECT CITY, LENGTH(CITY)
        FROM STATION
        WHERE LENGTH(CITY) = (SELECT MIN(LENGTH(CITY)) FROM STATION)
        ORDER BY CITY
    )
    WHERE ROWNUM = 1;
    
  • 未覆盖最长城市的需求:根据给定规则,需要处理长度最短和最长两种场景下的城市筛选,但你的语句仅实现了最短长度城市的查询,完全没涉及最长长度的逻辑。如果要同时获取两种场景下符合要求的城市,可通过UNION ALL合并两个查询,示例如下:

    (SELECT CITY, LENGTH(CITY)
     FROM STATION
     WHERE LENGTH(CITY) = (SELECT MIN(LENGTH(CITY)) FROM STATION)
     ORDER BY CITY
     LIMIT 1)
    UNION ALL
    (SELECT CITY, LENGTH(CITY)
     FROM STATION
     WHERE LENGTH(CITY) = (SELECT MAX(LENGTH(CITY)) FROM STATION)
     ORDER BY CITY
     LIMIT 1);
    

    同样,若使用不支持LIMIT的数据库,需替换为对应行限制语法。

  • 可选优化:冗余字段:如果需求仅要求返回符合条件的城市名称,LENGTH(CITY)字段属于冗余返回,可根据实际需求决定是否保留。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 11:42:50