【问题标题】:Hackerrank SQL challengeHackerrank SQL 挑战
【发布时间】:2017-06-23 23:05:17
【问题描述】:

这个 T-SQL 查询

SELECT city, Len(city) 
FROM station 
ORDER BY Len(city)

返回按city 排序的表,而不是按Len(city) - 这是正确的行为吗?

Acme 4 
Addison 7 
Agency 6 
Aguanga 7 
Alanson 7 
Alba 4 
...

挑战是:

https://www.hackerrank.com/challenges/weather-observation-station-5

【问题讨论】:

  • 我的太棒了!现在,您尝试了哪些方法,为什么不起作用?
  • 我不明白为什么返回按city 排序,而不是您查询中定义的Len(city)...
  • 无法在 SQL Server 2016 中重现此行为 - 就像任何人都猜到的那样 - 查询返回按城市名称的 长度 排序的行

标签: sql-server tsql


【解决方案1】:

既然你想要第一个和最后一个,我可能只使用一个联合和前 1。清楚地表明你所追求的并且易于维护。

而且由于您可以按顺序使用别名...我将别名 len(city)

SELECT TOP 1 
    city, len(city) LenCity 
FROM 
    station 
ORDER BY
    LenCity ASC 

UNION ALL 

SELECT TOP 1 
    city, Len(City) lenCity 
FROM 
    station 
ORDER BY 
    LenCity DESC

【讨论】:

    猜你喜欢
    • 2020-06-07
    • 2017-03-22
    • 2022-07-24
    • 2022-07-12
    • 2018-02-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-16
    相关资源
    最近更新 更多