j'ai une grande chaîne dans SQL Server. Je veux tronquer cette chaîne à 10 ou 15 caractères
Chaîne d'origine
this is test string. this is test string. this is test string. this is test string.
Chaîne souhaitée
this is test string. this is ......
sql-server
tsql
SanamShaikh
la source
la source
Réponses:
Si vous ne souhaitez renvoyer que quelques caractères de votre longue chaîne, vous pouvez utiliser:
Voir SQL Fiddle avec démo .
Cela renverra les 15 premiers caractères de la chaîne, puis concatène le
...
à la fin de celle-ci.Si vous voulez vous assurer que les chaînes inférieures à 15 n'obtiennent pas le,
...
vous pouvez utiliser:Voir SQL Fiddle avec démo
la source
...
ajout lorsqu'elle ne s'applique pasVous pouvez utiliser
ou
la source
Je pense que les réponses ici sont excellentes, mais j'aimerais ajouter un scénario.
Plusieurs fois, j'ai voulu supprimer un certain nombre de caractères au début d'une chaîne, sans me soucier de sa longueur. Il existe plusieurs façons de faire cela avec RIGHT () et SUBSTRING (), mais ils ont tous besoin de connaître la longueur de la chaîne, ce qui peut parfois ralentir les choses.
J'ai utilisé la fonction STUFF () à la place:
Cela remplace la longueur de la chaîne inutile par une chaîne vide.
la source
Vous pouvez également utiliser l'opération Cast ():
la source
Vous pouvez également utiliser ce qui suit, le iif évite l'instruction case et n'ajoute des ellipses que lorsque cela est nécessaire (uniquement bon dans SQL Server 2012 et versions ultérieures) et l'instruction case est plus conforme à ANSI (mais plus verbeuse)
la source
la source