/ Forside / Teknologi / Udvikling / SQL / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
SQL
#NavnPoint
pmbruun 1704
niller 962
fehaar 730
Interkril.. 701
ellebye 510
pawel 510
rpje 405
pete 350
gibson 320
10  smorch 260
Kan man dette?
Fra : Peter


Dato : 21-04-02 19:13

Hej,

Er det muligt at hente navnet på et felt i en database. Dvs. ikke
selve de data feltet indeholder, men navnet på feltet selv.

Fx. jeg har en database med tre felter som jeg har navngivet: x, y og
z som, hver især indeholder data -lad os sige x=(1,3,4), y=(2,10,5) og
z=(6,7) respektivt. Hvis jeg nu i et søgefelt søger på 1, 3 eller 4
vil jeg gerne have returneret x, hvis jeg søger på 2,10 eller 5 vil
jeg gerne have returneret y, hvis jeg søger på 6 eller 7 vil jeg gerne
have returneret z. Altså omvendt af, hvad man normalt gør. Er dette
muligt og, hvis det er, gælder det så for alle databaser?.

På forhånd tak -og undskyld, hvis jeg er uklar i min formulering.

/Peter

 
 
Jakob Andersen (21-04-2002)
Kommentar
Fra : Jakob Andersen


Dato : 21-04-02 20:00

"Peter" <ptrlsn@hotmail.com> wrote in message
news:5ebd9070.0204211013.24f115dd@posting.google.com...
> Er det muligt at hente navnet på et felt i en database. Dvs. ikke
> selve de data feltet indeholder, men navnet på feltet selv.

Det kommer helt an på din database, i f.eks. MS SQL har man adgang til det i
system tabellerne og hvis man bruger ADO til at connecte til sin database
kan man igennem dette også se kolinnenavne samt tabelnavne.

--
Jakob Andersen



Nis Jorgensen (22-04-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 22-04-02 14:05

On 21 Apr 2002 11:13:24 -0700, ptrlsn@hotmail.com (Peter) wrote:

>Er det muligt at hente navnet på et felt i en database. Dvs. ikke
>selve de data feltet indeholder, men navnet på feltet selv.
>
>Fx. jeg har en database med tre felter som jeg har navngivet: x, y og
>z som, hver især indeholder data -lad os sige x=(1,3,4), y=(2,10,5) og
>z=(6,7) respektivt. Hvis jeg nu i et søgefelt søger på 1, 3 eller 4
>vil jeg gerne have returneret x, hvis jeg søger på 2,10 eller 5 vil
>jeg gerne have returneret y, hvis jeg søger på 6 eller 7 vil jeg gerne
>have returneret z. Altså omvendt af, hvad man normalt gør. Er dette
>muligt og, hvis det er, gælder det så for alle databaser?.
>
>På forhånd tak -og undskyld, hvis jeg er uklar i min formulering.

Jeg hjaelper lige lidt:

Du har en database. En database indeholder ikke "felter". Den
indeholder tabeller. Tabeller indeholder "poster", og poster
indeholder "felter", der indeholder "vaerdier".

De vaerdier der er i samme post er relaterede - fx kan denne tabel

Fornavn Efternavn Land
------- --------- ----
Jens Michael DK
Michael Hansen DK
Michael Olsson SE
- - -

beskrive 3 forskellig personer, Jens Michael fra Danmark, Michael
Nielsen fra Danmark og Michael Olsson fra Sverige.

Du kan selvfoelgelig godt sige "Fornavn indeholder (Jens, Michael),
Efternavn indeholder (Hansen, Michael, Olsson) og Land (DK, SE)" - men
det vil forvirre folk der er vant til at arbejde med databaser.

Ud fra ovenstaaende kunne du maaske fortaelle, hvad du oensker som
resultat ved en soegning paa "Jens", "Michael", "Hans" og "Jette". Saa
kan det vaere vi kan hjaelpe dig.

Bemaerk: Jeg beder dig om at fortaelle PRAECIS hvad du oensker at faa
tilbage. Bemaerk at du med (standard-)SQL kun kan faa resultatet
tilbage som et antal poster, der alle indeholder de samme felter, der
indeholder vaerdier.

Fortael ogsaa gerne hvilken database du bruger - for det skal
formodentlig goeres lidt forskelligt fra system til system. Princippet
vil dog formodentlig vaere det samme.

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Jens Gyldenkærne Cla~ (22-04-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 22-04-02 14:24

Nis Jorgensen <nis@dkik.dk> skrev:

> Du har en database. En database indeholder ikke "felter". Den
> indeholder tabeller.

Jep.

> Tabeller indeholder "poster", og poster indeholder "felter",

Poster "indeholder" ikke felter - felterne bestemmes af
tabeldefinitionen. En tom tabel - uden nogen poster - indeholder
også felter, og ingen handlingsforespørgsel (INSERT, UPDATE eller
DELETE) kan ændre på de felter der er til rådighed i en tabel.

Felter er (nogle af) egenskaberne for en tabel, mens poster er
indholdet i en tabel.


--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)

Nis Jorgensen (22-04-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 22-04-02 15:28

On Mon, 22 Apr 2002 13:24:09 +0000 (UTC), "Jens Gyldenkærne Clausen"
<jc@dmf.dk> wrote:

>
>> Tabeller indeholder "poster", og poster indeholder "felter",
>
>Poster "indeholder" ikke felter - felterne bestemmes af
>tabeldefinitionen. En tom tabel - uden nogen poster - indeholder
>også felter, og ingen handlingsforespørgsel (INSERT, UPDATE eller
>DELETE) kan ændre på de felter der er til rådighed i en tabel.

Accepteret. Jeg vil dog forbeholde mig retten til at mene, at hver
post logisk indeholder en kopi af feltdefinitionerne - saaledes at det
giver mening at have en post uden at have en tabel.


--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Jens Gyldenkærne Cla~ (22-04-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 22-04-02 15:36

Nis Jorgensen <nis@dkik.dk> skrev:

> Accepteret. Jeg vil dog forbeholde mig retten til at mene, at
> hver post logisk indeholder en kopi af feltdefinitionerne -
> saaledes at det giver mening at have en post uden at have en
> tabel.

Det er så ok . Den definition kan også være god hvis man
opererer med postsæt baseret på flere tabeller. Men i din i øvrigt
udmærkede gennemgang af objekthierarki i databaser syntes jeg bare
det var vigtigt at pointere at felterne defineres af tabellerne,
ikke af de enkelte poster.

--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)

Peter (23-04-2002)
Kommentar
Fra : Peter


Dato : 23-04-02 21:14

Hej og tak for korrektionen

Hvis jeg søger på "Jens" eller "Michael" ønsker jeg at få returneret
"Fornavn" og "Efternavn", da de findes begge steder. Hvis jeg søger på
"Jens" ønsker jeg at få returneret "Fornavn", da det kun indgår dette
ene sted. Hvis jeg søger på "DK" eller "SE" ønsker jeg at få
returneret "Land", da de kun indgår dette ene sted. Hvis jeg søger på
"Hansen" eller "Olsson" ønsker jeg at få returneret "Efternavn", da de
kun indgår dette ene sted.

Det er altså, så vidt jeg kan forstå på din beskrivelse af databaser
nedenfor, navnet på de enkelte poster jeg ønsker at få returneret.

Jeg har endnu ikke besluttet, hvilken database jeg vil bruge. Det
afhænger af, hvilke databaser jeg kan gøre ovenstående "trick" med.

Jeg håber jeg har været lidt med præcis denne gang

/Peter

> Jeg hjaelper lige lidt:
>
> Du har en database. En database indeholder ikke "felter". Den
> indeholder tabeller. Tabeller indeholder "poster", og poster
> indeholder "felter", der indeholder "vaerdier".
>
> De vaerdier der er i samme post er relaterede - fx kan denne tabel
>
> Fornavn Efternavn Land
> ------- --------- ----
> Jens Michael DK
> Michael Hansen DK
> Michael Olsson SE
> - - -
>
> beskrive 3 forskellig personer, Jens Michael fra Danmark, Michael
> Nielsen fra Danmark og Michael Olsson fra Sverige.
>
> Du kan selvfoelgelig godt sige "Fornavn indeholder (Jens, Michael),
> Efternavn indeholder (Hansen, Michael, Olsson) og Land (DK, SE)" - men
> det vil forvirre folk der er vant til at arbejde med databaser.
>
> Ud fra ovenstaaende kunne du maaske fortaelle, hvad du oensker som
> resultat ved en soegning paa "Jens", "Michael", "Hans" og "Jette". Saa
> kan det vaere vi kan hjaelpe dig.
>
> Bemaerk: Jeg beder dig om at fortaelle PRAECIS hvad du oensker at faa
> tilbage. Bemaerk at du med (standard-)SQL kun kan faa resultatet
> tilbage som et antal poster, der alle indeholder de samme felter, der
> indeholder vaerdier.
>
> Fortael ogsaa gerne hvilken database du bruger - for det skal
> formodentlig goeres lidt forskelligt fra system til system. Princippet
> vil dog formodentlig vaere det samme.

Nis Jorgensen (24-04-2002)
Kommentar
Fra : Nis Jorgensen


Dato : 24-04-02 12:46

On 23 Apr 2002 13:14:29 -0700, ptrlsn@hotmail.com (Peter) wrote:

>Hej og tak for korrektionen
>
>Hvis jeg søger på "Jens" eller "Michael" ønsker jeg at få returneret
>"Fornavn" og "Efternavn", da de findes begge steder. Hvis jeg søger på
>"Jens" ønsker jeg at få returneret "Fornavn", da det kun indgår dette
>ene sted. Hvis jeg søger på "DK" eller "SE" ønsker jeg at få
>returneret "Land", da de kun indgår dette ene sted. Hvis jeg søger på
>"Hansen" eller "Olsson" ønsker jeg at få returneret "Efternavn", da de
>kun indgår dette ene sted.
>
>Det er altså, så vidt jeg kan forstå på din beskrivelse af databaser
>nedenfor, navnet på de enkelte poster jeg ønsker at få returneret.

Nej. Du oensker navnet paa de enkelte _felter_.
Anyways, det kan lade sig goere - men du mangler stadig at svare paa
denne:

>>Fortael ogsaa gerne hvilken database du bruger - for det skal
>>formodentlig goeres lidt forskelligt fra system til system. Princippet
>>vil dog formodentlig vaere det samme.


Ved naermere eftertanke tror jeg dog du kan goere det saaledes i de
fleste SQL-dialekter,:

(SELECT DISTINCT 'Efternavn' as Feltnavn
WHERE Efternavn='Michael')

UNION

(SELECT DISTINCT 'Fornavn' as Feltnavn
WHERE Fornavn='Michael')

etc

(det kan IKKE lade sig goere hvis ikke du kender feltnavnene).

--
Nis Jorgensen
Amsterdam

Please include only relevant quotes, and reply below the quoted text. Thanks

Jens Gyldenkærne Cla~ (24-04-2002)
Kommentar
Fra : Jens Gyldenkærne Cla~


Dato : 24-04-02 13:10

Nis Jorgensen <nis@dkik.dk> skrev:

> (SELECT DISTINCT 'Efternavn' as Feltnavn
> WHERE Efternavn='Michael')
>
> UNION
>
> (SELECT DISTINCT 'Fornavn' as Feltnavn
> WHERE Fornavn='Michael')

God løsning. Feltnavnet fastlægges alene af den første forespørgsel
i en UNION-række, så det andet "as Feltnavn" er overflødigt.


--
Jens Gyldenkærne Clausen
MF (medlem af FIDUSO - www.fiduso.dk)

Søg
Reklame
Statistik
Spørgsmål : 177501
Tips : 31968
Nyheder : 719565
Indlæg : 6408526
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste