Ich habe dieseBenutzerdefinierte Sortierreihenfolge in SQL gemischten Server-Datentypen in einer varchar gespeichert
declare @testtable table (test nvarchar(max))
insert into @testtable (test) values ('1.2.3')
insert into @testtable (test) values ('1.20.3')
insert into @testtable (test) values ('1.19.x')
insert into @testtable (test) values ('1.x.x')
insert into @testtable (test) values ('1.19.3')
insert into @testtable (test) values ('DEC09')
insert into @testtable (test) values ('Plutonium')
insert into @testtable (test) values ('dec09')
insert into @testtable (test) values ('N/A')
insert into @testtable (test) values ('MyTest20')
insert into @testtable (test) values ('20MyTest')
insert into @testtable (test) values ('1.4.18')
insert into @testtable (test) values ('1.4.168')
select * from @testtable
order by test asc;
die
1.19.3
1.19.x
1.2.3
1.20.3
1.4.168
1.4.18
1.x.x
20MyTest
DEC09
dec09
MyTest20
N/A
Plutonium
gibt, aber ich würde die Ausgabereihenfolge
1.2.3
1.4.18
1.4.168
1.19.3
1.19.x
1.20.3
1.x.x
20MyTest
DEC09
dec09
MyTest20
Plutonium
N/A
sein mögen (beachten Sie, dass N/A „Magie“ ist und immer größte „Version“ (ex 1.2.3) immer 3 Ziffern haben, obwohl eine oder mehr Ziffer char sein kann x zeigen „eine beliebige Ziffer“, die immer möglichst große digit)
berücksichtigt werden sollten Wie kann ich das erreichen in SQL Server?
+ 1 Für DDL und INSERTs. Welche SQL Server-Version? –
Die Versionen dieser ist anders, weil die Lösung auf verschiedenen Servern – Millerbean
* Wie * anders platziert werden? Was ist die früheste Version, auf der dies ausgeführt werden soll? Bitte fügen Sie die entsprechenden Tags hinzu. –