sql >> Databáze >  >> RDS >> Sqlserver

sql server řazení pro vícejazyčná data

Pro začátek budete chtít, aby všechny vaše sloupce byly nvarchar . To se postará o vaše problémy s úložištěm. Pokud jde o třídění a filtrování, pak se porovnávání stává důležitým, jak říkáte.

V závislosti na tom, co děláte s daty a kolik sloupců potřebujete použít pro filtrování a řazení a jak provádíte operace, je jedním ze způsobů, jak to udělat, pomocí dynamického sql. Můžete udělat něco jako

declare @collation sysname = 'Latin1_General_CI_AS'
declare @cmd nvarchar(max)
set @cmd = 'select * from person order by last_name collate ' + @collation
exec sp_executesql @cmd

Není to skvělé řešení, ale funguje to. Porovnání můžete také hodit za libovolné pole v pohledu, takže jak jste zmínil, je to možnost. Něco takového a pak se můžete dotazovat, aniž byste museli zadávat porovnávání.

create view v_Person_RU as
select first_name collate Cyrillic_General_CI_AI, last_name collate Cyrillic_General_CI_AI...

create view v_Person_AR as
select first_name collate Arabic_CI_AI, last_name collate Arabic_CI_AI...

Pak můžete použít jen vybrat správný pohled, který chcete použít pro dotazování.



  1. Časový limit vypršel pgadmin Nelze se připojit k serveru

  2. Spojení více tabulek vrátí hodnotu NULL

  3. Replikace dat v IRI Workbench

  4. ORA-00907:chybějící pravá závorka (s příklady)