Cik esmu redzējis, tad visbiežāk datu bāzēs Latvijā tiek izmantota kolācija "Latvian_CI_AS". Latvian nozīmē valodu, CI nozīmē Case Insensitive, AS nozīmē Accent Sensitive. Tātad- lielie un mazie burti tiek uzskatīti par vienu un to pašu, savukārt garumzīmes (a un ā) tiek atšķirti kā dažādi burti.
Tātad, ja datu bāzē glabājat datus izmantojot "Latvian_CI_AS" kolāciju (vai patiesībā jebkuru derīgu), bet nepieciešams salīdzināt tā, lai tiktu ņemti vērā lielie/mazie burti un/vai garumzīmes tad var izmantto "Collate" atslēgvārdu.
Šeit neliels piemērs (trīs dažādi salīdzināšanas varianti):
Create Table #Test
(
Col1 nvarchar(50),
Col2 nvarchar(50)
)
go
Insert Into #Test (Col1, Col2)
Values ('aaa','aaa');
Insert Into #Test(Col1, Col2)
Values ('aaa','aAa');
Insert Into #Test(Col1, Col2)
Values ('aaa','aāa');
go
-- Parasti: Case Insensitive, Accent sensitive. Bet jums var atšķirties.
Select *
From #Test
Where Col1 = Col2
-- Case Sensitive, Accent sensitive
Select *
From #Test
Where Col1 = Col2 Collate Latvian_CS_AS
-- Case Sensitive, Accent Insitive
Select *
From #Test
Where Col1 = Col2 Collate Latvian_CS_AI
-- Case Insitive, Accent Insitive
Select *
From #Test
Where Col1 = Col2 Collate Latvian_CI_AI
Go
Drop table #Test
Nav komentāru:
Ierakstīt komentāru