Toon posts:

[SQL] Het selecteren van rijnummers

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

Verwijderd

Topicstarter
Oi allen. Ik zit met een probleempje. Ik zal het wat versimpelen. Ik heb bijv. de volgende tabel 'persoon':

idvoornaamplaats
1PietAmsterdam
2HenkUtrecht
3KeesLeiden
4TruusAmsterdam
5HansEindhoven
6MiepAmsterdam

Wat ik nu wil is het volgende: Alle personen die uit 'Amsterdam' komen. Nee, dat is idd niet zo moeilijk, maar waar ik niet uitkom is dat ik in de SQL iedere rij al van een uniek oplopend nummer wil voorzien dat start bij '1'. Het gewenste resultaat is dus:

rowvoornaamplaats
1PietAmsterdam
2TruusAmsterdam
3MiepAmsterdam


Ik heb geen idee hoe ik dit voor elkaar zou moeten krijgen. Iemand ideeën?

Verwijderd

Bovenstaand voorbeeld kan dus niet. Je kunt velden niet loskoppelen van de kolommen. In jouw voorbeeld hoort 1 bij Piet en Amsterdam. Je kunt dat niet scheiden van elkaar. Wat je dus wilt is dat elke plaats bij 1 begint, dus niet meer uniek is (je krijgt namelijk dezelfde ID's bij verschillende plaatsnamen). Helaas dus niet mogelijk volgens mij.

  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Als dit om Oracle SQL gaat zou je een sequence aan kunnen maken. Met select seq_name.nextval kan je opeenvolgende waarden fetchen.

Verwijderd

in Oracle:
code:
1
2
3
4
select   rownum
,        voornaam
,        plaats
from     persoon

Verwijderd

Verwijderd schreef op 07 maart 2003 @ 09:35:
in Oracle:
code:
1
2
3
4
select   rownum
,        voornaam
,        plaats
from     persoon
Yep, dat is nog makkelijker! Stom dat ik daar niet aan dacht!
Maar misschien moet Rickman even aangeven in welke database hij aan het prutsen is ;)

[ Voor 15% gewijzigd door Verwijderd op 07-03-2003 09:46 ]


Verwijderd

Volgens mij bedoelt de TS het volgende:

code:
1
2
3
4
5
1 Piet Amsterdam
2 Truust Amsterdam
3 Miep Amsterdam
1 Henk Utrecht
1 Kees Leiden


En dat lukt dus niet. Anders heb ik het verkeerd begrepen..

ehm.. zie opeens het verschil tussen ID en ROW... |:( lamaar... bovenstaande oplossing is goed :) ikke }:O

[ Voor 22% gewijzigd door Verwijderd op 07-03-2003 09:45 ]


  • gorgi_19
  • Registratie: Mei 2002
  • Laatst online: 20-08 11:40

gorgi_19

Kruimeltjes zijn weer op :9

Verwijderd schreef op 07 March 2003 @ 09:44:
Volgens mij bedoelt de TS het volgende:

1 Piet Amsterdam
2 Truust Amsterdam
3 Miep Amsterdam
1 Henk Utrecht
1 Kees Leiden

En dat lukt dus niet. Anders heb ik het verkeerd begrepen..
Verwijderd schreef op 07 March 2003 @ 09:17:
Wat ik nu wil is het volgende: Alle personen die uit 'Amsterdam' komen.
:)

[ Voor 10% gewijzigd door gorgi_19 op 07-03-2003 09:47 ]

Digitaal onderwijsmateriaal, leermateriaal voor hbo


Verwijderd

Topicstarter
Helaas geen Oracle maar MSSQL. Ik heb mede dankzij de hierboven geposte URL een oplossing gevonden m.b.v. de identity function. Ik vind 'm niet zo elegant, maar we doen het er even mee :)

code:
1
2
3
4
5
6
7
8
9
10
11
IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES 

   WHERE TABLE_NAME = 'temp_persoon')
   DROP TABLE temp_persoon
GO

SELECT id = identity(int,1,1),naam,plaats
INTO temp_persoon
FROM persoon

SELECT * from temp_persoon

Verwijderd

Is het gebruik van variabelen hier een mogelijkheid?
Zie http://www.mysql.com/doc/en/Variables.html

  • Folkert
  • Registratie: September 2001
  • Laatst online: 10-07 07:58
Waarvoor heb je het nodig eigenlijk? In wat voor een toepassing ga je het gebruiken? Internet toepassing?

Verwijderd

Topicstarter
Ja een internet toepassing voor op m'n werk. Ik had een component (ColdFusion Custom Tag) gemaakt dat aan de hand van een query een CSV bestand genereerd. Query er in, bestandje eruit. Daarom moest er dus een kant-en-klare query ontworpen worden die PRECIES de informatie ophaalde die ik nodig had.

[ Voor 5% gewijzigd door Verwijderd op 07-03-2003 11:34 ]


  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03-2025

Crayne

Have face, will travel

Ik gok er op dat ik je probleem niet helemaal begrijp, maar waarom laat je bij het uitlezen van de recordset niet een count variabele meelopen?

Mijn Library Thing catalogus


Verwijderd

Topicstarter
Juist omdat ik met een component werk:

QUERY --> COMPONENT --> CSV file

Ik wil niets aan het component veranderen. Z'n enige taak is een query inslikken en een CSV file uitspugen. Alles wat uit de query komt wordt gewoon letterlijk in de CSV file gezet. Daarom moet de query EXACT datgene opleveren wat je in de file wilt hebben.

Ik had het uiteraard kunnen oplossen door het component zodanig aan te passen dat er een countertje meeloopt die de rijnummers wegschrijft, maar ik wil m'n component uiteraard ook nog voor andere query's kunnen gebruiken. En laten die nou net niet zo'n nummertje nodig hebben ;)

[ Voor 32% gewijzigd door Verwijderd op 07-03-2003 12:35 ]


  • Crayne
  • Registratie: Januari 2002
  • Laatst online: 17-03-2025

Crayne

Have face, will travel

Ach ja, was mijn eerste indruk toch goed :+

Mijn Library Thing catalogus

Pagina: 1