Я хочу найти самый длинный VARCHAR
в определенном столбце таблицы SQL Server.
Вот пример:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
Что SQL возвращает 3? Поскольку самое длинное значение - 3 символа?
Я хочу найти самый длинный VARCHAR
в определенном столбце таблицы SQL Server.
Вот пример:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
Что SQL возвращает 3? Поскольку самое длинное значение - 3 символа?
Используйте встроенные функции для длины и максимума в столбце описания:
SELECT MAX(LEN(DESC)) FROM table_name;
Обратите внимание, что если ваша таблица очень большая, могут возникнуть проблемы с производительностью.
для mysql его длина не len
SELECT MAX(LENGTH(Desc)) FROM table_name
Остерегайтесь! Если есть пробелы, они не будут рассматриваться методом LEN в T-SQL. Не позволяйте этому обмануть вас и используйте
select max(datalength(Desc)) from table_name
Для Oracle это также LENGTH вместо LEN
SELECT MAX(LENGTH(Desc)) FROM table_name
Кроме того, DESC является зарезервированным словом. Хотя многие зарезервированные слова по-прежнему будут работать для имен столбцов, во многих случаях это плохая практика, и это может вызвать проблемы при некоторых обстоятельствах. Они зарезервированы по какой-то причине.
Если слово Desc просто использовалось в качестве примера, следует отметить, что не все поймут это, но многие поймут, что это зарезервированное слово для Descending. Лично я начал с этого, а затем попытался выяснить, где было имя столбца, потому что все, что у меня было, были зарезервированными словами. Это не заняло много времени, чтобы понять это, но помните об этом, когда решаете, что заменить свое фактическое имя столбца.
Дает максимальное количество записей в таблице
select max(len(Description))from Table_Name
Дает запись с большим количеством
select Description from Table_Name group by Description having max(len(Description)) >27
Надежда помогает кому-то.
SELECT MAX(LEN(Desc)) as MaxLen FROM table
Для сервера sql (SSMS)
select MAX(LEN(ColumnName)) from table_name
Это вернет количество символов.
select MAX(DATALENGTH(ColumnName)) from table_name
Это вернет количество использованных/необходимых байтов.
ЕСЛИ кто-то использует varchar, тогда используйте DATALENGTH
. Подробнее
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
Много раз вы хотите идентифицировать строку, у которой этот столбец имеет наибольшую длину, особенно если вы устраняете неполадки, чтобы выяснить, почему длина столбца в строке таблицы, например, намного длиннее, чем в любой другой строке. Этот запрос даст вам возможность перечислить идентификатор в строке, чтобы определить, какая это строка.
select ID, [description], len([description]) as descriptionlength
FROM [database1].[dbo].[table1]
where len([description]) =
(select max(len([description]))
FROM [database1].[dbo].[table1]