2014-01-30 3 views
5

Ich brauche die Anzahl der Leerzeichen in Spaltenwerte in SQL Server.zählen Sie die Anzahl der Leerzeichen in Werten in SQL-Server

Ex:

column1 
------------ 
aaa bbbb - 1 space 
aaa bbb ccc - 2 space 
aaa bbb ccc ddd - 3 space 

Ich brauche die Anzahl der Räume wie diese.

danke.

+0

@mhasan gibt es einen großen Unterschied, wenn man Kommas in Leerzeichen zählt. Wenn Sie meine Antwort testen, können Sie sehen, warum. –

Antwort

21
SELECT LEN(column1)-LEN(REPLACE(column1, ' ', '')) 
3

Versuchen diese eine -

DECLARE @t TABLE (txt VARCHAR(50)) 
INSERT INTO @t (txt) 
VALUES 
     ('aaa bbbb') 
    , ('aaa bbb ccc') 
    , ('aaa bbb ccc ddd') 

SELECT txt, LEN(txt) - LEN(REPLACE(txt, ' ', '')) 
FROM @t 
+3

@Devart Ihre Antwort gibt nicht die richtige Anzahl zurück, wenn Leerzeichen am Ende des Textes vorhanden sind. Es ignoriert die letzten Leerzeichen beim Zählen. –

2

dies ein Code für dieses ist

select len('aaa bbb') - len(replace('aaa bbb ccc', ' ', '')) from 
**tablename** 

Ausgang

select len('aaa bbb ccc') - len(replace('aaa bbb ccc', ' ', '')) from 
**tablename** 

ouput

Tablename acan alles Tabelle, die in der Datenbank sein kann

10

Das wird ein anderes und genauere Ergebnisse als die anderen Antworten gibt, wird es auch Räume am Ende des Zählen die Worte, es wird deutlich, wenn auf diesen Beispielen getestet:

DECLARE @a table(column1 varchar(20)) 
INSERT @a values('b c ') 
INSERT @a values('b c') 
INSERT @a values(' b c  ') 

SELECT 
LEN(column1 + ';')-LEN(REPLACE(column1,' ','')) - 1 accurate, 
LEN(column1)-LEN(REPLACE(column1,' ', '')) [inaccurate] -- other answers 
FROM @a 

Ergebnis:

accurate inaccurate 
2   1 
1   1 
10   4 
Verwandte Themen