Я хочу найти самый длинный VARCHAR
в определенном столбце таблицы SQL Server.
Вот пример:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
Какой SQL вернуть 3? Поскольку самое длинное значение составляет 3 символа?
sql
sql-server
string-length
maxlength
Майло Ламар
источник
источник
DATALENGTH
(поскольку вы можете использоватьNVARCHAR
в некоторых местах или когда-нибудь).для 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 server (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]
источник
Для IBM Db2 его ДЛИНА, а не ДЛИНА:
SELECT MAX(LENGTH(Desc)) FROM table_name;
источник