2016-10-26 3 views
-1

Kann mir jemand sagen, warum dieses Stück Code keine Werte zurückgibt, wenn es Übereinstimmungen von meiner Tabelle gibt?Prüfen, ob eine Zeichenkette alle in einer anderen Zeichenkette enthalten ist

CREATE FUNCTION fn_AllEmployeesAndTownsWhichContainLetters(@setOfLetters NVARCHAR(200), @string NVARCHAR(200)) 
    RETURNS BIT 
     AS 
     BEGIN 
      DECLARE @length INT, @i INT 
      SET @length = LEN(@string) 
      SET @i = 1  
      WHILE (@i < @length) 
       BEGIN 
        IF CHARINDEX(SUBSTRING(@string, 1, @i),@setOfLetters) <= 0 
         RETURN 0 
        ELSE 
         SET @i = @i + 1 
       END 
      RETURN 1 
     END GO 
+0

gut, welche Daten werden an sie übergeben? – Clay

+0

eine Spalte [Vorname] aus einer Tabelle, die Spalte hat viele Nvarchar-Werte und ich versuche zu überprüfen, ob eine dieser Zeichenfolgen die @setOfLetters entsprechen (egal wie die Reihenfolge der Buchstaben ist) – Zorie

Antwort

0
CREATE FUNCTION fn_AllEmployeesAndTownsWhichContainLetters(@setOfLetters NVARCHAR(200), @string NVARCHAR(200)) 
RETURNS BIT 
AS 
BEGIN 
    DECLARE @length INT, @i INT 
    SET @length = LEN(@string) 
    SET @i = 1  
    WHILE (@i < @length) 
     BEGIN 
      IF CHARINDEX(SUBSTRING(@string, 1, @i),@setOfLetters) > 0 
       RETURN 1 
      ELSE 
       SET @i = @i + 1 
     END 
    RETURN 0 
END 
Verwandte Themen