Je veux trouver le plus long 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 SQL pour retourner 3? Puisque la valeur la plus longue est de 3 caractères?
sql
sql-server
string-length
maxlength
Milo LaMar
la source
la source
DATALENGTH
(puisque vous pouvez utiliserNVARCHAR
à certains endroits, ou un jour).pour mysql sa longueur n'est pas len
SELECT MAX(LENGTH(Desc)) FROM table_name
la source
Fais attention!! S'il y a des espaces, ils ne seront pas pris en compte par la méthode LEN dans T-SQL. Ne vous laissez pas tromper et utilisez
select max(datalength(Desc)) from table_name
la source
Pour Oracle, c'est aussi LENGTH au lieu de LEN
SELECT MAX(LENGTH(Desc)) FROM table_name
De plus, DESC est un mot réservé. Bien que de nombreux mots réservés fonctionnent toujours pour les noms de colonnes 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 le mot Desc n'était utilisé qu'à titre d'exemple, il convient de noter que tout le monde ne s'en rendra pas compte, mais que beaucoup se rendront compte que c'est un mot réservé pour Descendant. Personnellement, j'ai commencé par utiliser ceci, puis j'ai essayé de comprendre où allait le nom de la colonne parce que je n'avais que des mots réservés. Il n'a pas fallu longtemps pour le comprendre, mais gardez cela à l'esprit lorsque vous décidez quoi remplacer votre nom de colonne réel.
la source
Donne le nombre maximal d'enregistrements dans la table
select max(len(Description))from Table_Name
Donne un record avec un plus grand nombre
select Description from Table_Name group by Description having max(len(Description)) >27
L'espoir aide quelqu'un.
la source
SELECT MAX(LEN(Desc)) as MaxLen FROM table
la source
Pour le serveur SQL (SSMS)
select MAX(LEN(ColumnName)) from table_name
Cela renverra le nombre de caractères.
select MAX(DATALENGTH(ColumnName)) from table_name
Cela retournera le nombre d'octets utilisés / requis.
SI quelqu'un utilise varchar alors utilisez
DATALENGTH
. Plus de détailsla source
SELECT TOP 1 column_name, LEN(column_name) AS Lenght FROM table_name ORDER BY LEN(column_name) DESC
la source
Plusieurs fois, vous voulez identifier la ligne qui a cette colonne avec la longueur la plus longue, surtout si vous dépannez pour savoir pourquoi la longueur d'une colonne sur une ligne dans un tableau est tellement 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 de quelle ligne il s'agit.
select ID, [description], len([description]) as descriptionlength FROM [database1].[dbo].[table1] where len([description]) = (select max(len([description])) FROM [database1].[dbo].[table1]
la source
Pour IBM Db2 sa LENGTH, pas LEN:
SELECT MAX(LENGTH(Desc)) FROM table_name;
la source