Y a-t-il une simple requête SQL qui peut m'aider à déterminer le nombre moyen de caractères qu'un champ de base de données (texte) a?
Par exemple, mon champ est appelé "Message". Idéalement, j'aimerais aimer faire quelque chose comme ça ... p> est-ce encore possible via SQL? P> Merci! P> P> P> P> P> P> P> P> P> >
6 Réponses :
select avg(length(fieldname)) from table Though the answer could potentially differ depending on your RDBMS.
"Longueur" est l'argument Type de données Texte est invalide pour l'argument 1 de la fonction LEN .... (La longueur n'était pas valide, donc je l'ai remplacée par "len")
select sum(len(theTextColumn)) / count(*) from theTable;
select avg(length(textfield)) from mytable;
Oui, c'est possible. Dans SQLServer, par exemple, ce serait:
SELECT AVG(LEN(Name)) FROM MyTable
Original Bad Phrase: em> dans SQL Server, len est pour les champs Varcharpar. Pour les champs de texte, essayez DataLength P> Correction car @gbn a raison: em> Len ne fonctionnera pas avec du texte ou des types de données NTEXT. Pour le texte, essayez la longueur de données. P> SELECT AVG(DATALENGTH(yourtextfield)) AS TEXTFieldSize
Len vous donne des caractères coupés, la longueur de données vous donne des octets non traités. Que Varchark ou NvarchaRar affecte les résultats bien sûr, mais "len est pour les champs de Varchark" n'est pas réellement correct
-1 pour trompeurs maintenant, il est accepté: la réponse de Klaus Byskov Hoffmann est correcte
@gbn, alors s'il vous plaît expliquer cette erreur: MSG 8116, niveau 16, état 1, ligne 5 Type de données Ntext n'est pas valide pour l'argument 1 de la fonction LEN. Il propose également le type de données de texte. La question a été spécifiquement posée sur le type de données de texte et cette erreur a été signalée dans un commentaire sur la réponse de @ Dmcnelis.
MSG 8116, niveau 16, État 1, ligne 1 Type de données Type de données est invalide pour l'argument 1 de la fonction LEN.
En outre, cela est bien documenté à plusieurs endroits. Tout ce que vous avez à faire est Google "SQL Server Len Text TextypeyType". Par exemple, ici: MSSQLTips.com/tip.asp?tipos=1188 Vous devriez vérifier vos faits avant de voter.
Sans oublier que je me suis dérangé pour prendre le temps de tester les deux déclarations avant de poster une réponse.
À l'exception du texte et du NTEXT sont obsolètes depuis SQL Server 2005. C'est l'une des fonctions rares i> travaillé avec le texte et le NTTEXT. Len fonctionne avec Nvarchar (Max). Votre réponse est encore plus erronée maintenant. Avez-vous vérifié les livres en ligne sur MSDN pour ce que dit MS? Cet article nous avions daté lorsque les DTS écrit ont également été obsolètes. Ainsi, Len et DataLength sont indépendants du type de données pour les 3 versions les plus récentes de SQL Server.
@gbn. Oui. Mais regardez la question. Il a spécifié (texte). Vous êtes 100% correct pour Varchar (MAX) et NvarchaRar (Max) mais mal pour la question actuelle posée. Pas que cela compte. Je suis juste ennuyé par d'autres choses, alors cette petite chose m'a mis. Désolé d'être un si bébé à ce sujet.
Votre réponse est correcte pour l'objet DataType - I Object to the "Len est pour le bit de Varcharne"
Tu as raison. C'était une façon stupide pour moi de le verser. J'essayais de répondre avant que quelqu'un d'autre ne l'ait fait et n'a pas payé l'attention d'Enogh sur la façon dont je l'ai libellé. J'ai corrigé ma réponse, donnant crédit lorsque le crédit est dû. Je vous remercie de le faire remarquer.
pour mySQL: extrait de: p>
quel SMDBMS? Oracle, Sybase, MySQL, SQL Server?