Подтвердить что ты не робот

Получить максимальную длину столбца VARCHAR в SQL Server

Я хочу найти самый длинный VARCHAR в определенном столбце таблицы SQL Server.

Вот пример:

ID = INT IDENTITY
DESC = VARCHAR(5000)

ID | Desc
---|-----
1  | a
2  | aaa
3  | aa

Что SQL возвращает 3? Поскольку самое длинное значение - 3 символа?

4b9b3361

Ответ 1

Используйте встроенные функции для длины и максимума в столбце описания:

SELECT MAX(LEN(DESC)) FROM table_name;

Обратите внимание, что если ваша таблица очень большая, могут возникнуть проблемы с производительностью.

Ответ 2

для mysql его длина не len

SELECT MAX(LENGTH(Desc)) FROM table_name

Ответ 3

Остерегайтесь! Если есть пробелы, они не будут рассматриваться методом LEN в T-SQL. Не позволяйте этому обмануть вас и используйте

select max(datalength(Desc)) from table_name

Ответ 4

Для Oracle это также LENGTH вместо LEN

SELECT MAX(LENGTH(Desc)) FROM table_name

Кроме того, DESC является зарезервированным словом. Хотя многие зарезервированные слова по-прежнему будут работать для имен столбцов, во многих случаях это плохая практика, и это может вызвать проблемы при некоторых обстоятельствах. Они зарезервированы по какой-то причине.

Если слово Desc просто использовалось в качестве примера, следует отметить, что не все поймут это, но многие поймут, что это зарезервированное слово для Descending. Лично я начал с этого, а затем попытался выяснить, где было имя столбца, потому что все, что у меня было, были зарезервированными словами. Это не заняло много времени, чтобы понять это, но помните об этом, когда решаете, что заменить свое фактическое имя столбца.

Ответ 5

Дает максимальное количество записей в таблице

select max(len(Description))from Table_Name

Дает запись с большим количеством

select Description from Table_Name group by Description having max(len(Description)) >27

Надежда помогает кому-то.

Ответ 6

SELECT MAX(LEN(Desc)) as MaxLen FROM table

Ответ 7

Для сервера sql (SSMS)

select MAX(LEN(ColumnName)) from table_name

Это вернет количество символов.

 select MAX(DATALENGTH(ColumnName)) from table_name

Это вернет количество использованных/необходимых байтов.

ЕСЛИ кто-то использует varchar, тогда используйте DATALENGTH. Подробнее

Ответ 8

SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC

Ответ 9

Много раз вы хотите идентифицировать строку, у которой этот столбец имеет наибольшую длину, особенно если вы устраняете неполадки, чтобы выяснить, почему длина столбца в строке таблицы, например, намного длиннее, чем в любой другой строке. Этот запрос даст вам возможность перечислить идентификатор в строке, чтобы определить, какая это строка.

select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) = 
 (select max(len([description]))
  FROM [database1].[dbo].[table1]