Avatar billede psn Nybegynder
16. april 2003 - 14:59 Der er 7 kommentarer og
1 løsning

sortering af select

Jeg har et problem med at skulle sortere en select * statement,

jeg vil gerne have indholdet af en tabel med denne form:
CREATE TABLE public.table_category (
  id serial8 NOT NULL,
  category_name varchar(255) NOT NULL,
  chooseable bool DEFAULT false,
  parent int8 NOT NULL,
  CONSTRAINT table_category_pkey PRIMARY KEY (id)
) WITH OIDS;
sorteret således at posterne er sorteret alfabetisk efter category_name med de categorier som har "parent" tilsvarende til det id som den netop er kommet til.

Er svaret en trigger hvordan skal den så laves?

Jeg har for søgt group by og order by.

/psn
Avatar billede mortrr Praktikant
16. april 2003 - 15:25 #1
Du vil have sorteret på category_name, men have at de poster der har en parent svarende til en id skal komme lige efter deres parent?

Hoved1
- sub1,1
- sub1,2
- sub1,3
Hoved2
- sub2,1
- sub2,2

?
Avatar billede psn Nybegynder
22. april 2003 - 09:10 #2
Lige præcis... ved du hvordan det kan gøres?
Avatar billede mortrr Praktikant
22. april 2003 - 10:20 #3
Lav det i en select når du skal bruge data, med en left join.

select Cat1.id AS HovedID, Cat1.category_name AS HovedName, Cat1.parent AS HovedParent, Cat1.chooseable AS HovedChooseable, Cat2.id as SubID, Cat2.category_name AS SubName, Cat2.parent AS SubParent, Cat2.chooseable AS SubChooseable FROM public.table_category AS Cat1 LEFT JOIN public.table_category AS Cat2 ON Cat1.id=Cat2.parent ORDER BY HovedName, SubName

Eller INNER JOIN hvis du kun skal bruge hoved hvor der er en sub.
Avatar billede mortrr Praktikant
22. april 2003 - 10:23 #4
Du kan selvfølgelig også oprette det som et view.

CREATE VIEW public.view_categoryHovedSub AS
select Cat1.id AS HovedID, Cat1.category_name AS HovedName, Cat1.parent AS HovedParent, Cat1.chooseable AS HovedChooseable, Cat2.id as SubID, Cat2.category_name AS SubName, Cat2.parent AS SubParent, Cat2.chooseable AS SubChooseable FROM public.table_category AS Cat1 LEFT JOIN public.table_category AS Cat2 ON Cat1.id=Cat2.parent ORDER BY HovedName, SubName;
Avatar billede psn Nybegynder
22. april 2003 - 11:26 #5
Såvidt jeg kan se forudsætter dit forslag, at man kender hovedkategorierne, men i vores eksempel bliver den valgt dynamisk. Det vil sige at der kan være f.eks. 1000 kategorier der skal sorteres.
Avatar billede mortrr Praktikant
22. april 2003 - 11:54 #6
Jeg går ud fra at hovedkategorierne ikke har nogen parent, så man kan lave udvælgelsen med fx WHERE Cat1.Parent IS NULL

Viewet kan derefter begrænses på kendte felter.
Avatar billede psn Nybegynder
27. april 2003 - 11:31 #7
takker
Avatar billede mortrr Praktikant
27. april 2003 - 13:21 #8
Hvis du selv snupper pointene, skal du da ikke takke mig.

(hvis man vil lukke et spørgsmål, og den man vil give point ikke har svaret, beder man dem om at lægge et svar).
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