Lai īsāk, uzreiz piemērs:
create table #tVai var pateikt, kā dati tiks sakārtoti? Mēģināt jau var..
(
x char(10)
)
insert into #t (x) values ('a')
insert into #t (x) values ('ab')
insert into #t (x) values ('ā')
insert into #t (x) values ('āb')
insert into #t (x) values ('k')
insert into #t (x) values ('ka')
insert into #t (x) values ('ķ')
insert into #t (x) values ('ķa')
Select * From #t Order By X
Tomēr lai atbildētu, būtu jāzina kāda ir SQL Server (un līdz ar to TempDB) kolācija. Šajā gadījumā tiek izmantota Latvian_CI_AS kolācija.
Pēc manas izpratnes- šajā gadījumā datiem būtu jābūt sakārtotiem tieši tā, kā tie tiek ievietoti tabulā. Tomēr rezultāti ir savādāki:
Kā redzams, burtu 'k' un 'ķ' gadījumā viss ir sakārtots tā, kā jābūt, savukārt 'a' un 'ā' kārtojot tiek uzskatīti kā vienādi burti.
Šajā gadījumā piemērs ir apzināti darbināts uz SQL Server 2008 R2. Līdz ar to ir pieejamas arī jaunās SQL Server kolācijas (tās, kurām nosaukumā ir paslēpies '100'). Izmantojot jaunās kolācijas, sakārtojums kļūst korekts:
Vēl viens iemesls padomāt, kādas kolācijas izmantot.
>> savukārt 'a' un 'ā' kārtojot tiek uzskatīti kā vienādi burti.
AtbildētDzēstTas ir korekti, jo šāds kārtošanas princips latviešu valodā ir pieņemts. Man gan pašam patīk, ka a un ā tiek nodalīts, bet nu tādi standarti ir pieņemti un tam ir savs pamatojums.
Ja tas ir korekts, kāpēc tas neattiecas uz 'k' un 'ķ' burtiem šajā pašā piemērā? Un ja standarts, tad kāpēc pieņemtais standarts netiek turpināts jaunajās kolācijās?
AtbildētDzēstKolācija nav tas pats, kas alfabētiskā secība. Bieži tiek nodalīta primārā prioritāte (k un ķ) un sekundārā (a un ā). Iespējams, ka latviešu kolāciju veidotāji neiedziļinās šādās niansēs. Pajautā labāk, kāpēc, piemēram, Word joprojām liek nepareizās latviešu pēdiņas. ;)
AtbildētDzēstTas gan, kolācija nav tas pats, kas alfabētiskā kārtība (ja pareizi atceros, Poļiem 'ch' tiek uzskatīti par atsevišķu kārtojamu simbolu pāri).
AtbildētDzēstStarp citu- interesanti, uz mana Win 7 attiecīgi nosaukti faili tiek sakārtoti a->ab->ā->āb, kamēr Win XP sakārto a->ā->ab->āb
Normāli jau būtu, ja varētu lietot vienu vai otru kolāciju pēc izvēles.
AtbildētDzēst