2016-10-26 43 views
-1

テーブルから一致するものがある場合、このコードが何らかの値を返さない理由を教えてください。文字列がすべて別の文字列に含まれているか確認してください

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

だけでなく、どのようなデータが渡されていますか? – Clay

+0

テーブルの[Firstname]列の列には、多くのnvarchar値があり、これらの文字列のどれかが@setOfLettersと一致するかどうかをチェックしようとしています(文字の順序に関係なく) – Zorie

答えて

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 
関連する問題