используя len в предложении where - PullRequest
0 голосов
/ 05 июня 2019

Я пытаюсь найти город с наибольшим количеством символов в наборе данных.

Но я получаю эту ошибку:

Сообщение 102, уровень 15, состояние 1, сервер WIN-ILO9GLLB9J0, строка 4
Неверный синтаксис рядом с 'len'

Я не уверен, почему, поскольку, когда я заменяю max len(city) на соответствующий номер, это, кажется, работает.

(я знаю, что это может быть достигнуто с помощью сортировки, но я хочу понять, почему я не могу добиться этого с помощью предложения where)

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

Ответы [ 2 ]

5 голосов
/ 05 июня 2019

Выражение

max len(city)

не является синтаксически правильным.
Вы должны заменить его подзапросом, который получает максимальную длину:

select city 
from station
where len(city) = (select max(len(city)) from station)
0 голосов
/ 05 июня 2019

Мне нравится писать это как:

select top (1) with ties city 
from station
order by len(city) desc;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...