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?
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.
pour mysql sa longueur non len
SELECT MAX(LENGTH(Desc)) FROM table_name
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
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.
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.
SELECT MAX(LEN(Desc)) as MaxLen FROM table
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
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
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]