web-dev-qa-db-fra.com

Récupérer la longueur maximale d'une colonne VARCHAR dans SQL Server

Je veux trouver la plus longue VARCHAR dans une colonne spécifique d'une table SQL Server.

Voici un exemple:

ID = INT IDENTITY
DESC = VARCHAR(5000)

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

Quel est le code SQL à renvoyer 3? Puisque la valeur la plus longue est 3 caractères?

63
Milo LaMar

Utilisez les fonctions intégrées pour length et max dans la colonne de description:

SELECT MAX(LEN(DESC)) FROM table_name;

Notez que si votre table est très grande, il peut y avoir des problèmes de performances.

120
aweis

pour mysql sa longueur non len

SELECT MAX(LENGTH(Desc)) FROM table_name
27
Abhishek Goel

Fais attention!! S'il y a des espaces, ils ne seront pas pris en compte par la méthode LEN dans T-SQL. Ne laissez pas cette astuce vous et utilisez

select max(datalength(Desc)) from table_name
15
bevada

Pour Oracle, c'est aussi LENGTH au lieu de LEN

SELECT MAX(LENGTH(Desc)) FROM table_name

En outre, DESC est un mot réservé. Bien que de nombreux mots réservés fonctionnent toujours pour les noms de colonne dans de nombreuses circonstances, il est déconseillé de le faire et peut entraîner des problèmes dans certaines circonstances. Ils sont réservés pour une raison.

Si la description de la parole était juste utilisée à titre d'exemple, il convient de noter que tout le monde ne s'en rendra pas compte, mais beaucoup se rendront compte qu'il s'agit d'une parole réservée à la descente. Personnellement, j'ai commencé par utiliser ceci, puis à essayer de comprendre où se trouvait le nom de la colonne, car tous mes mots étaient réservés. Il n'a pas fallu longtemps pour le comprendre, mais gardez cela à l'esprit lorsque vous décidez quoi remplacer par le nom de votre colonne.

7
codeguruinboise

Donne le nombre maximal d'enregistrements dans la table

select max(len(Description))from Table_Name

Donne un record ayant un plus grand compte  

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

Hope aide quelqu'un.

4
stom
SELECT MAX(LEN(Desc)) as MaxLen FROM table
3
Milo LaMar
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
1

Pour serveur SQL (SSMS)

select MAX(LEN(ColumnName)) from table_name

Ceci retournera le nombre de caractères.

 select MAX(DATALENGTH(ColumnName)) from table_name

Ceci retournera le nombre d'octets utilisés/requis.

Si quelqu'un utilise varchar, utilisez DATALENGTH. Plus de détails

1
MSTdev

Plusieurs fois, vous souhaitez identifier la ligne qui a cette colonne avec la plus grande longueur, en particulier si vous dépannez pour savoir pourquoi la longueur d'une colonne d'une ligne dans une table est beaucoup plus longue que toute autre ligne, par exemple. Cette requête vous donnera la possibilité de lister un identifiant sur la ligne afin d'identifier la ligne correspondante.

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