Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

Caracteres invertidos em string com idiomas mistos da esquerda para a direita e da direita para a esquerda usando SQL?


Acredito que toda a sua string esteja invertida e o fato de as palavras hebraicas estarem sendo exibidas na ordem correta é, na verdade, resultado de um problema diferente. O que eu suspeito é que as palavras hebraicas são armazenadas em uma ordem não lexical.

Em teoria, você deve ser capaz de resolver seu problema simplesmente invertendo a string e, em seguida, forçando o SQL Server a exibir as palavras em árabe da esquerda para a direita. Isso é feito anexando um caractere especial à frente e atrás de sua string da seguinte forma:
    DECLARE @sourceString NVARCHAR(100) = N'123456 בדיקה esrever sti fI kcehC';

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

    SELECT @reversedString;