web-dev-qa-db-fra.com

Comment vérifier la longueur de la chaîne, puis sélectionner la sous-chaîne dans Sql Server

Dans une vue, j'ai une colonne commentaires qui peut contenir une grande chaîne. Je veux juste sélectionner les 60 premiers caractères et ajouter le '...' à la fin de la chaîne sélectionnée.

Pour sélectionner les 60 premiers caractères, j'ai utilisé la requête suivante:

select LEFT(comments, 60) as comments from myview

Maintenant, je veux son traitement comme ci-dessous:

  1. Vérifiez qu'il contient plus de 60 caractères ou non.
  2. Si contient, sélectionnez uniquement les 6 premiers caractères et ajoutez trois points à la fin.
  3. S'il ne contient pas plus de 60 caractères, sélectionnez la chaîne entière sans ajouter trois points à la fin.

Merci

24
Code Rider

Pour vérifier conditionnellement la longueur de la chaîne, utilisez CASE.

SELECT  CASE WHEN LEN(comments) <= 60 
             THEN comments
             ELSE LEFT(comments, 60) + '...'
        END  As Comments
FROM    myView
41
John Woo