2012-04-04 2 views
0

Wie kann ich überprüfen, ob die Zeichenfolge arabicum ist oder nicht, basierend ein, dass ich die Spalte meiner Sprache ID aktualisieren muß als Englisch oder ArabischWie die Zeichenfolge überprüfen, ob es arabische Sprache oder nicht in SQL Server 2008

IF(PATINDEX('%[^أ-ي]%', RTRIM(@STRING))=0) 
     BEGIN 
       SET @RETURNVALUE='A' 
     END 
ELSE IF(PATINDEX('%[^A-Za-z]%', RTRIM(@STRING))=0) 
     BEGIN 
       SET @RETURNVALUE='E' 
     END 

Wenn suppose Name beginnt mit S und folgt arabischen Namen es wirft null

EX: set @STRING= N'العربيةs'

freundlich um dieses Problem zu klären helfen?

Antwort

1

Die IF-Anweisung Sie effektiv zu nutzen, sagt:

Wenn die Zeichenfolge nicht ein nicht-arabischen Zeichen gesetzt Ergebnis enthalten 'A'

Andernfalls, wenn die Zeichenfolge einen nicht enthalten nicht-lateinischen Zeichen, Satz Ergebnis zu ‚E‘

Wenn Sie Strings haben beide Skripte, arabische und lateinische enthält, wird der Ergebniswert nicht festgelegt.

Entfernen Sie die Negation in der Regex, wie folgt aus:

declare @string nvarchar(50), @returnvalue varchar (50) 

set @string = N'العربيةs' 
set @returnvalue = '' 

IF(PATINDEX(N'%[أ-ي]%', RTRIM(@string))>0) 
    BEGIN 
     SET @returnvalue= @returnvalue + 'A' 
    END 
IF(PATINDEX(N'%[A-Za-z]%', RTRIM(@string))>0) 
    BEGIN 
     SET @returnvalue= @returnvalue + 'E' 
    END 

select @string, @returnvalue 

kehrt

العربيةs AE 

Update nach dem 1. Kommentar

IF(PATINDEX(N'%[أ-ي]%', RTRIM(@string))>0) 
    BEGIN 
     SET @returnvalue= 'A' 
    END 
ELSE IF(PATINDEX(N'%[A-Za-z]%', RTRIM(@string))>0) 
    BEGIN 
     SET @returnvalue= 'E' 
    END 

RETURN @returnvalue 
+0

i Rückgabewert tatsächlich benötigen arabicum, wenn eine einzige Brief gehört arabisch sollte es als arabische Sprache entscheiden ist mein Ziel, aber wie? – user1300588

+0

Ja, ich habe Ihre aktualisierte Vorlage getestet, aber ich benutze die gleiche Zeichenfolge Beispiel gibt es Ergebnis als E, aber ich brauche arabisch nah ... single arabic char existiert auch .. mein Ergebnis sollte in A übergehen – user1300588

Verwandte Themen