Eu quero encontrar o mais longo VARCHAR
em uma coluna específica de uma tabela do SQL Server.
Aqui está um exemplo:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
Qual é o SQL para retornar 3? Já que o maior valor tem 3 caracteres?
sql
sql-server
string-length
maxlength
Milo LaMar
fonte
fonte
DATALENGTH
(já que você pode usarNVARCHAR
em alguns lugares, ou algum dia).para mysql seu comprimento não é len
SELECT MAX(LENGTH(Desc)) FROM table_name
fonte
Cuidado!! Se houver espaços, eles não serão considerados pelo método LEN no T-SQL. Não deixe isso enganar você e usar
select max(datalength(Desc)) from table_name
fonte
Para Oracle, também é LENGTH em vez de LEN
SELECT MAX(LENGTH(Desc)) FROM table_name
Além disso, DESC é uma palavra reservada. Embora muitas palavras reservadas ainda funcionem para nomes de coluna em muitas circunstâncias, é uma prática inadequada fazer isso e pode causar problemas em algumas circunstâncias. Eles são reservados por um motivo.
Se a palavra Desc estava sendo usada apenas como exemplo, deve-se notar que nem todos perceberão isso, mas muitos perceberão que é uma palavra reservada para Descendente. Pessoalmente, comecei usando isso e depois tentando descobrir para onde ia o nome da coluna porque tudo o que tinha eram palavras reservadas. Não demorou muito para descobrir, mas tenha isso em mente ao decidir o que substituir pelo nome real da coluna.
fonte
Fornece a contagem máxima de registros na tabela
select max(len(Description))from Table_Name
Dá Recorde Com Maior Contagem
select Description from Table_Name group by Description having max(len(Description)) >27
A esperança ajuda alguém.
fonte
SELECT MAX(LEN(Desc)) as MaxLen FROM table
fonte
Para servidor sql (SSMS)
select MAX(LEN(ColumnName)) from table_name
Isso retornará o número de caracteres.
select MAX(DATALENGTH(ColumnName)) from table_name
Isso retornará o número de bytes usados / necessários.
SE alguém usar varchar, use
DATALENGTH
. Mais detalhesfonte
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
fonte
Muitas vezes você deseja identificar a linha que tem aquela coluna com o comprimento mais longo, especialmente se você estiver solucionando problemas para descobrir por que o comprimento de uma coluna em uma linha em uma tabela é muito maior do que qualquer outra linha, por exemplo. Esta consulta lhe dará a opção de listar um identificador na linha para identificar em qual linha ele é.
select ID, [description], len([description]) as descriptionlength FROM [database1].[dbo].[table1] where len([description]) = (select max(len([description])) FROM [database1].[dbo].[table1]
fonte
Para IBM Db2 é COMPRIMENTO, não LEN:
SELECT MAX(LENGTH(Desc)) FROM table_name;
fonte