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