Avatar billede it-interesseret Nybegynder
06. juli 2006 - 00:34 Der er 9 kommentarer og
2 løsninger

"Order by" kan ikke længere anvendes i Views på Express'en

Hej alle

har lige opgraderet fra MSDE til 2005 express, men mine Views fungerer ikke længere, når det handler om "order by" (indbygget i viewet). Jeg skal skrive "order by" i asp-koden, for at få den til at lave en orden.

Hymmm... hvorfor nu det. Det var jo smart nok at ordne recordene inden de ankom til asp-laget.

Jeg troede først, at det var et View, som der var noget galt med, men det er faktisk alle views, fandt jeg senere ud af.

Nogen som har en forklaring på dette "tilbagefald"?
Avatar billede arne_v Ekspert
06. juli 2006 - 01:51 #1
spørgesmålet har været her før

http://www.eksperten.dk/spm/666778
Avatar billede arne_v Ekspert
06. juli 2006 - 01:52 #2
jeg mener stadigt at mit svar er korrekt

ORDER BY har aldrig skullet virke i VIEW's

det har tilfældigvis virket i 2000 men nu i 2005 virker denne usupporterede feature ikke længere
Avatar billede cjensen Nybegynder
06. juli 2006 - 08:32 #3
arne:
Dit svar ER korrekt.

Bare et forslag (til "it-interesseret"), du kunne jo angive TOP xx i select'en i dit view, så skulle ORDER BY virke..... (det er vel alligevel begrænset hvor mange records du vil vise på en hjemmeside (?) - eller omvendt er det vel ikke uendeligt mange der er behov for)
Avatar billede it-interesseret Nybegynder
06. juli 2006 - 11:18 #4
Takker - begge - tryk svar :-)
Avatar billede cjensen Nybegynder
06. juli 2006 - 11:33 #5
:)
Avatar billede arne_v Ekspert
06. juli 2006 - 13:41 #6
.
Avatar billede arne_v Ekspert
06. juli 2006 - 13:44 #7
cjensen>

Ved du om det er garanteret at data i en VIEW med TOP og ORDER BY kommer ud sorteret ?
Eller vil det i 2005 eller en fremtidig version kunne ske at den bruger ORDER BY
til TOP men alligevel returnerer data usorteret ?
Avatar billede cjensen Nybegynder
06. juli 2006 - 13:55 #8
arne:
Jeg kan ikke forestille mig andet end at posterne vil komme ud sorteret.

Klippe-klistret fra spm 666778
"ORDER BY Clause
Specifies the sort for the result set. The ORDER BY clause is invalid in views, inline functions, derived tables, and subqueries, unless TOP is also specified."

Det burde være sikkert..... (Men kan jo ikke påstå at vide det 100% (og slet ikke for fremtidig versioner))
Avatar billede it-interesseret Nybegynder
06. juli 2006 - 17:52 #9
Men jeg anvender også TOP:

SELECT DISTINCT
                      TOP (100) PERCENT dbo.LINKS_CATEGORIES.ID AS CAT_ID, dbo.LINKS_GROUPS.ID AS GROUP_ID, dbo.LINKS_GROUPS.Title AS GROUPS_Title,
                      dbo.LINKS_CATEGORIES.Title AS CAT_Title
FROM        dbo.LINKS_GROUPS INNER JOIN
                      dbo.LINKS_CATEGORIES ON dbo.LINKS_GROUPS.ID = dbo.LINKS_CATEGORIES.GroupID INNER JOIN
                      dbo.LINKS_FSH ON dbo.LINKS_CATEGORIES.ID = dbo.LINKS_FSH.CategoryID
WHERE    (dbo.LINKS_FSH.Publish <= GETDATE())
ORDER BY GROUPS_Title, CAT_Title
Avatar billede cjensen Nybegynder
07. juli 2006 - 09:16 #10
Jeps - det var også bare en kommentar til arne_v

I MS dokumentation står der jo bare at ORDER BY kun er gyldig, hvis TOP også indgår i SELECT'en. Der står ingen steder at ORDER BY er ændret - så jeg ser ingen grund til at det ikke skulle virke nu (eller i fremtiden).
Avatar billede it-interesseret Nybegynder
07. juli 2006 - 15:21 #11
Fatter stadig minus ;-) men det virker, hvis jeg tilføjer order by i asp'en.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester