Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

đối chiếu máy chủ sql cho dữ liệu đa ngôn ngữ

Đối với người mới bắt đầu, bạn sẽ muốn tất cả các cột của mình là nvarchar . Điều đó sẽ giải quyết các vấn đề lưu trữ của bạn. Đối với việc sắp xếp và lọc, thì các đối chiếu trở nên quan trọng như bạn nói.

Tùy thuộc vào những gì bạn đang làm với dữ liệu và số lượng cột bạn cần sử dụng để lọc và sắp xếp cũng như cách bạn thực hiện các thao tác, một cách để làm điều đó là sử dụng sql động. Bạn có thể làm điều gì đó như

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

Đó không phải là một giải pháp tuyệt vời, nhưng nó hoạt động. Bạn cũng có thể ném đối chiếu sau bất kỳ trường nào trong một chế độ xem, vì vậy, như bạn đã đề cập, đó là một tùy chọn. Một cái gì đó như thế này, và sau đó bạn có thể truy vấn nó mà không cần phải chỉ định đối chiếu.

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

Sau đó, bạn có thể sử dụng chỉ cần chọn chế độ xem phù hợp để sử dụng cho việc truy vấn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Loại dữ liệu được trả về thay đổi dựa trên dữ liệu trong bảng

  2. Làm cách nào để thay thế tất cả các trường khóa trong một chuỗi bằng các giá trị thay thế từ một bảng trong T-SQL?

  3. TSQL chia đều tập kết quả cho các nhóm và cập nhật chúng

  4. Mệnh đề ORDER BY không hợp lệ trong các dạng xem, hàm nội tuyến, bảng dẫn xuất

  5. Làm thế nào để áp dụng 3 giá trị cho 1 hàng cho 3 hàng với mỗi giá trị?