2013-02-26 16 views
19

In una vista, ho una colonna commenti che può contenere una stringa di grandi dimensioni. Voglio solo selezionare i primi 60 caratteri e aggiungere lo '...' alla fine della stringa selezionata.Come controllare la lunghezza della stringa e quindi selezionare la sottostringa in Sql Server

Per la selezione di primi 60 caratteri ho usato seguente query:

select LEFT(comments, 60) as comments from myview 

Ora voglio la sua lavorazione, come di seguito:

  1. Controlla che contiene più di 60 caratteri o meno.
  2. Se contiene, seleziona solo i primi 6o caratteri e aggiunge tre punti alla fine.
  3. Se non contiene più di 60 caratteri, selezionare l'intera stringa senza aggiungere tre punti alla fine.

Grazie

+0

Eventuali duplicati di [Substring solo se la lunghezza della stringa> 2] (https://stackoverflow.com/questions/10899661/substring-only-if-string-length- 2) – amin

risposta

31

Per controllare condizionale la lunghezza della stringa, usa CASE.

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

Ricorda che nel primo caso la lunghezza massima della stringa di output è 60 e nella seconda è 63! – pkuderov

Problemi correlati