在where子句中使用len

时间:2019-06-05 17:32:37

标签: sql sql-server

我正在尝试在数据集中找到字符数最多的城市。

但是我收到此错误:

  

信息102,级别15,状态1,服务器WIN-ILO9GLLB9J0,第4行
  'len'附近的语法不正确

我不确定为什么,因为当我用适当的数字替换var duration;时似乎可行。

(我知道可以使用sort by来实现,但是我想理解为什么我无法使用where子句来实现这一点)

max len(city)

2 个答案:

答案 0 :(得分:5)

表达式

max len(city)

在语法上不正确。
您必须将其替换为具有最大长度的子查询:

select city 
from station
where len(city) = (select max(len(city)) from station)

答案 1 :(得分:0)

我喜欢这样写:

select top (1) with ties city 
from station
order by len(city) desc;