[SQL] Alle kolommen opvragen behalve de eerste

Pagina: 1
Acties:
  • 264 views sinds 30-01-2008
  • Reageer

  • Dr_oetker
  • Registratie: Januari 2000
  • Laatst online: 05-03 14:39
Alle kolommen vraag je op via SELECT * From Table.. maar ik wil alle kolommen opvragen behalve de eerste kolom. Ik weet dat je kolommen kunt opvragen via:

Select kolom2, kolom3, kolom etc From Table

Maar dat is me te weinig dynamisch, omdat ik later nog kolommen wil kunnen toevoegen, verwijderen en verplaatsen.

Hoe vraag je nu alle kolommen op zonder de eerste kolom?

[ Voor 9% gewijzigd door Dr_oetker op 29-11-2004 10:07 ]


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
Dit klinkt alsof je je relationeel model niet goed voor elkaar hebt. Dynamisch toevoegen van kolommen is eigenlijk niet zo'n goed idee. Weet je zeker dat je dat nodig hebt?

Oops! Google Chrome could not find www.rijks%20museum.nl


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 19-05 13:45

gorgi_19

Kruimeltjes zijn weer op :9

Query dynamisch opbouwen en dan via de schema informatie de kolomnamen opvragen. Of Select * en dan in je recordset vanaf de 2e kolom nemen. Of je datamodel veranderen; geregeld dynamisch kolommen toevoegen vraag ik me af of dit een goed datamodel is.

Digitaal onderwijsmateriaal, leermateriaal voor hbo


  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Dr_oetker schreef op maandag 29 november 2004 @ 10:07:
Select kolom2, kolom3, kolom etc From Table
Toch zit er niet veel meer dan dat op....
Dr_oetker schreef op maandag 29 november 2004 @ 10:07:
Maar dat is me te weinig dynamisch, omdat ik later nog kolommen wil kunnen toevoegen, verwijderen en verplaatsen.
Wat heeft verplaatsen er mee van doen? En als je een SP gebruikt (als mogelijk) hoef je het maar op 1 plaats aan te passen als er een kolom bij komt of vervalt.

En waarom zou je uberhaupt de eerste niet willen? Staat er veel in, of is het een int ofzo? Want dat maakt 't 'm ook niet dan...

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • Dr_oetker
  • Registratie: Januari 2000
  • Laatst online: 05-03 14:39
Bedankt voor de reacties tot nu toe, het toevoegen of verwijderen van kolommen zal in de regel nauwelijks gebeuren. Toch wil ik die mogelijkheid openhouden.

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Dan is het toch ook geen probleem om daarna queries te veranderen?

Als je goed documenteert waar je queries zijn, zeker als je ze op een enkele locatie plaatst, is het prima te doen om ze te wijzigen na een wijziging aan je applicatie. Normaliter moet je sowieso al applicatiecode wijzigen als je het nodig vond om een kolom toe te voegen of te verwijderen ;)

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Dr_oetker schreef op maandag 29 november 2004 @ 10:19:
Bedankt voor de reacties tot nu toe, het toevoegen of verwijderen van kolommen zal in de regel nauwelijks gebeuren. Toch wil ik die mogelijkheid openhouden.
Als je het als waarschijnlijk beschouwd is het hoe dan ook een goed idee om de feitelijke queries in een (mini)-DAL te bouwen waarna je via een mooi OOP-model de data benadert en de inhoudelijke SQL achter de schermen verborgen houdt.

Professionele website nodig?


  • Mike78
  • Registratie: September 2000
  • Laatst online: 19-05 18:39

Mike78

Always

Anders maak je een view aan over de tabel. Dan hoef je later alleen maar de view aan te passen en hoef je de programma's niet aan te passen. Kan je in je programma's gewoon select * doen.

24 uur per dag, 24 biertjes in een krat. Toeval?


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Mike78 schreef op maandag 29 november 2004 @ 10:34:
Anders maak je een view aan over de tabel. Dan hoef je later alleen maar de view aan te passen en hoef je de programma's niet aan te passen. Kan je in je programma's gewoon select * doen.
Wat natuurlijk alleen een brakke workaround is voor het feit dat SELECT * vrijwel altijd fout en overbodig is :)

Professionele website nodig?


  • Mike78
  • Registratie: September 2000
  • Laatst online: 19-05 18:39

Mike78

Always

curry684 schreef op maandag 29 november 2004 @ 10:35:
[...]

Wat natuurlijk alleen een brakke workaround is voor het feit dat SELECT * vrijwel altijd fout en overbodig is :)
Dat is waar. Ik zou het zelf ook nooit zo doen, maar ja. Misschien is het voor Dr_oetker dan dynamisch genoeg. ;)

24 uur per dag, 24 biertjes in een krat. Toeval?


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 18-05 09:50

pjvandesande

GC.Collect(head);

curry684 schreef op maandag 29 november 2004 @ 10:35:
[...]
het feit dat SELECT * vrijwel altijd fout en overbodig is :)
Kan curry684 dit uitleggen? O-)

  • P_de_B
  • Registratie: Juli 2003
  • Niet online
questa schreef op maandag 29 november 2004 @ 10:40:
[...]


Kan curry684 dit uitleggen? O-)
De enige goede reden om SELECT * te gebruiken is volgens mij in combinatie met een WHERE EXISTS statement. Voor de rest selecteer je onnodige velden en zit er een overhead in het bepalen van de kolomgegevens.

Oops! Google Chrome could not find www.rijks%20museum.nl


  • pjvandesande
  • Registratie: Maart 2004
  • Laatst online: 18-05 09:50

pjvandesande

GC.Collect(head);

P_de_B schreef op maandag 29 november 2004 @ 10:42:
[...]


De enige goede reden om SELECT * te gebruiken is volgens mij in combinatie met een WHERE EXISTS statement. Voor de rest selecteer je onnodige velden en zit er een overhead in het bepalen van de kolomgegevens.
Bedankt P_de_B, het komt inderdeed weinig voor dat je alle kolomgegevens nodig hebt. Maar van het gebruiken van de WHERE EXISTS statement gaat ik onthouden.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

questa schreef op maandag 29 november 2004 @ 10:40:
[...]

Kan curry684 dit uitleggen? O-)
Je code knalt niet of onvoorspelbaar als je je databaselayout veranderd, je selecteert overbodige data als je de tabel uitbreidt, je hebt geen controle over de volgorde van de velden, etc. etc. etc.

SELECT * is voor debuggen en handmatig SQL kloppen, niet voor software.

Professionele website nodig?


  • P_de_B
  • Registratie: Juli 2003
  • Niet online
questa schreef op maandag 29 november 2004 @ 10:45:
[...]


Bedankt P_de_B, het komt inderdeed weinig voor dat je alle kolomgegevens nodig hebt. Maar van het gebruiken van de WHERE EXISTS statement gaat ik onthouden.
Zal ik dan ook nog zeggen waarom? In dit geval kan de query engine kiezen op welke index te gebruiken, dit kan de snelheid ten goede komen.

Oops! Google Chrome could not find www.rijks%20museum.nl

Pagina: 1