Die Funktion LEN() gibt die Länge des Werts in einem Textfeld zurück.
SELECT LEN(column_name) FROM table_name
Die COUNT (*) Funktion die Anzahl der Datensätze in einer Tabelle zurückgibt:
SELECT COUNT(column_name) FROM table_name
WHERE LEN(column_name)=2
UPDATE:
SELECT COUNT(column_name) FROM table_name
So Ihre Abfrage so etwas wie dies sein sollte,
Ok Entschuldigung, ich vermute ich habe dich missverstanden. Falls du es willst, habe ich Angst, dass es keine eingebauten Funktionen gibt, um das zu tun, was du willst. Sie müssen also selbst eine Funktion ausführen. So etwas sollte funktionieren:
CREATE FUNCTION [dbo].[WordCount] (@InputString VARCHAR(4000))
RETURNS INT
AS
BEGIN
DECLARE @Index INT
DECLARE @Char CHAR(1)
DECLARE @PrevChar CHAR(1)
DECLARE @WordCount INT
DECLARE @CharCount INT
SET @Index = 1
SET @WordCount = 0
WHILE @Index <= LEN(@InputString)
BEGIN
SET @Char = SUBSTRING(@InputString, @Index, 1)
SET @CharCount = @CharCount + 1
SET @PrevChar = CASE WHEN @Index = 1 THEN ' '
ELSE SUBSTRING(@InputString, @Index - 1, 1)
END
IF @PrevChar = ' '
SET @CharCount = 1
END
IF @Char = ' ' AND @CharCount < 3 AND @CharCount > 1
SET @WordCount = @WordCount + 1
SET @Index = @Index + 1
END
RETURN @WordCount
END
Jetzt habe ich es noch nicht getestet, so dass Sie es auf eigene Faust zu testen, aber es sollte funktionieren. Es wird alle 2 Buchstaben Wörter in der ausgewählten Zeichenfolge zurückgeben. Um die Wörter mit 3 Buchstaben zu erhalten ändern Sie einfach
IF @Char = ' ' AND @CharCount < 4 AND @CharCount > 2
Ich hoffe, dass dies hilft.
Es geht um eine Volltextsuche. Daher möchte er in Spalten mit Inhalten wie "foo ba bar fo foooooo" höchstwahrscheinlich 2-stellige Wörter zählen. – fancyPants
@tombom Genau richtig - ich muss wissen, wie viele zwei Buchstaben Wörter innerhalb der Spalte, nicht die Spalte als Ganzes - danke, dass Sie die Zeit tho nehmen –