Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Sortering vraag

3 views
Skip to first unread message

Martin

unread,
Dec 9, 2009, 10:56:52 AM12/9/09
to
Hallo,

Ik heb een vreemd fenomeen wanneer ik de ORDER by clause gebruik op een alfa
veld, met de volgende waardes erin:

11-10521-G
11-1118
11114400201
11114400202
11-1150
11-11517
11118900201
11-1414

Zoals je ziet word het verbindingsstreepje genegeerd bij de sortering. Dat
is niet de bedoeling. Hoe kan ik dat veranderen?
Heeft het mischien iets met de collation te doen? Die is:
Latin1_General_CI_AS

Als 't daarmee te maken heeft, kan ik die zomaar veranderen? Welke zou dan
beter zijn?

Ik hoop dat iemand kan helpen...

Alvast bedankt,
Martin

Hugo Kornelis

unread,
Dec 9, 2009, 5:00:30 PM12/9/09
to

Hoi Martin,

Je hoeft hem niet eens te veranderen, je kan gewoon in de query opgeven
dat voor de sortering een andere collation gebruikt moet worden. Zie bv
de onderstaande repro:

DECLARE @Test TABLE (SortCol varchar(20));
INSERT INTO @Test
SELECT '11-10521-G'
UNION ALL
SELECT '11-1118'
UNION ALL
SELECT '11114400201'
UNION ALL
SELECT '11114400202'
UNION ALL
SELECT '11-1150'
UNION ALL
SELECT '11-11517'
UNION ALL
SELECT '11118900201'
UNION ALL
SELECT '11-1414';

-- Negeert de streepjes
SELECT *
FROM @Test
ORDER BY SortCol COLLATE Latin1_General_CI_AS;
-- Houdt wel rekening met de streepjes
SELECT *
FROM @Test
ORDER BY SortCol COLLATE Latin1_General_BIN;


--
Hugo Kornelis, SQL Server MVP
My SQL Server blog: http://sqlblog.com/blogs/hugo_kornelis

Martin

unread,
Dec 10, 2009, 7:48:59 AM12/10/09
to
Hallo Hugo,

Mijn hartelijke dank voor je antwoord. Het werkt!

Groeten,
Martin

"Hugo Kornelis" <hugo@pe_NO_rFact.in_SPAM_fo> wrote in message
news:7d70i5tss939i58qr...@4ax.com...

0 new messages