在where子句中使用len

Kvo*_*ute -1 sql sql-server

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

但我收到此错误:

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

我不知道为什么,因为当我max len(city)用适当的数字替换时,它似乎起作用。

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

select city 
from station
where len(city) = max len(city)
Run Code Online (Sandbox Code Playgroud)

for*_*pas 5

表达方式

max len(city)
Run Code Online (Sandbox Code Playgroud)

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

select city 
from station
where len(city) = (select max(len(city)) from station)
Run Code Online (Sandbox Code Playgroud)