Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Sortowanie serwera sql dla danych wielojęzycznych

Na początek chcesz, aby wszystkie Twoje kolumny były nvarchar . To rozwiąże Twoje problemy z przechowywaniem. Jeśli chodzi o sortowanie i filtrowanie, sortowanie staje się ważne, jak mówisz.

W zależności od tego, co robisz z danymi i ile kolumn musisz użyć do filtrowania i sortowania oraz jak wykonujesz operacje, jednym ze sposobów na to jest dynamiczny sql. Możesz zrobić coś takiego

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

To nie jest świetne rozwiązanie, ale działa. Możesz także rzucić sortowanie po dowolnym polu w widoku, więc jak wspomniałeś, jest to opcja. Coś takiego, a następnie możesz zapytać o to bez konieczności określania sortowania.

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

Następnie możesz użyć po prostu wybrać odpowiedni widok do użycia przy zapytaniach.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Konwertuj „smalldatetime” na „datetime2” w SQL Server (przykłady T-SQL)

  2. 7 sposobów na znalezienie zduplikowanych wierszy w SQL Server, ignorując dowolny klucz podstawowy

  3. połączenia kodeignitera i odbc

  4. WYBIERZ MAX z COUNT

  5. Przykładowe zapytanie dotyczące serwera połączonego z serwerem SQL