Quiero encontrar el más largo VARCHAR
en una columna específica de una tabla de SQL Server.
He aquí un ejemplo:
ID = INT IDENTITY
DESC = VARCHAR(5000)
ID | Desc
---|-----
1 | a
2 | aaa
3 | aa
¿Cuál es el SQL para devolver 3? ¿Dado que el valor más largo es de 3 caracteres?
sql
sql-server
string-length
maxlength
Milo LaMar
fuente
fuente
DATALENGTH
(ya que puede usarNVARCHAR
en algunos lugares, o algún día).para mysql su longitud no es larga
SELECT MAX(LENGTH(Desc)) FROM table_name
fuente
¡¡Cuidado!! Si hay espacios, no serán considerados por el método LEN en T-SQL. No dejes que esto te engañe y usa
select max(datalength(Desc)) from table_name
fuente
Para Oracle, también es LENGTH en lugar de LEN
SELECT MAX(LENGTH(Desc)) FROM table_name
Además, DESC es una palabra reservada. Aunque muchas palabras reservadas seguirán funcionando para nombres de columna en muchas circunstancias, es una mala práctica hacerlo y puede causar problemas en algunas circunstancias. Están reservados por una razón.
Si la palabra Desc solo se usaba como ejemplo, debería notarse que no todos se darán cuenta de eso, pero muchos se darán cuenta de que es una palabra reservada para Descendente. Personalmente, comencé usando esto y luego tratando de averiguar dónde iba el nombre de la columna porque todo lo que tenía eran palabras reservadas. No tomó mucho tiempo para resolverlo, pero téngalo en cuenta cuando decida qué sustituir por el nombre real de su columna.
fuente
Da el conteo máximo de registros en la tabla
select max(len(Description))from Table_Name
Da récord de tener mayor conteo
select Description from Table_Name group by Description having max(len(Description)) >27
La esperanza ayuda a alguien.
fuente
SELECT MAX(LEN(Desc)) as MaxLen FROM table
fuente
Para el servidor SQL (SSMS)
select MAX(LEN(ColumnName)) from table_name
Esto devolverá el número de caracteres.
select MAX(DATALENGTH(ColumnName)) from table_name
Esto devolverá el número de bytes usados / requeridos.
SI alguien usa varchar entonces use
DATALENGTH
. Más detallesfuente
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
fuente
Muchas veces desea identificar la fila que tiene esa columna con la longitud más larga, especialmente si está solucionando problemas para averiguar por qué la longitud de una columna en una fila en una tabla es mucho más larga que cualquier otra fila, por ejemplo. Esta consulta le dará la opción de listar un identificador en la fila para identificar de qué fila es.
select ID, [description], len([description]) as descriptionlength FROM [database1].[dbo].[table1] where len([description]) = (select max(len([description])) FROM [database1].[dbo].[table1]
fuente
Para IBM Db2 su LONGITUD, no LENGTH:
SELECT MAX(LENGTH(Desc)) FROM table_name;
fuente