Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Inverser les caractères dans une chaîne avec des langues mixtes de gauche à droite et de droite à gauche à l'aide de SQL ?

Je crois que toute votre chaîne est inversée et que le fait que les mots hébreux s'affichent dans le bon ordre est en fait le résultat d'un problème différent. Ce que je soupçonne, c'est que les mots hébreux sont stockés dans un ordre non lexical.

En théorie, vous devriez pouvoir résoudre votre problème en inversant simplement la chaîne, puis en forçant SQL Server à afficher les mots arabes de gauche à droite. Pour ce faire, ajoutez un caractère spécial au début et à la fin de votre chaîne comme suit :

    DECLARE @sourceString NVARCHAR(100) = N'123456 בדיקה esrever sti fI kcehC';

    DECLARE @reversedString NVARCHAR(4000)  = nchar(8237) + REVERSE(@sourceString) +  nchar(8236)

    SELECT @reversedString;