sql >> Database teknologi >  >> RDS >> Sqlserver

sql-serversortering til flersprogede data

Til at begynde med vil du have, at alle dine kolonner skal være nvarchar . Det vil tage sig af dine opbevaringsproblemer. Hvad angår sortering og filtrering, så bliver sammenstillinger vigtige som du siger.

Afhængigt af hvad du laver med dataene og hvor mange kolonner du skal bruge til filtrering og sortering og hvordan du laver operationerne, er en måde at gøre det på med dynamisk sql. Du kan gøre sådan noget som

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

Det er ikke en god løsning, men det virker. Du kan også smide sorteringen efter et hvilket som helst felt i en visning, så som du nævnte, er det en mulighed. Noget som dette, og så kan du forespørge på det uden at skulle angive sorteringer.

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...

Så kan du bare vælge den rigtige visning til at bruge til forespørgsler.



  1. Hvordan bruger jeg en IF-sætning i en MySQL-tilmeldingsforespørgsel?

  2. Hvordan omdøber man den uploadede fil, før man gemmer den i en mappe?

  3. Er der en måde at opretholde et db-forhold på (pk/fk) i følgende scenarie

  4. JDBC 4's java.sql.Clob.free() metode og bagudkompatibilitet