Toon posts:

[SQL] Fictief veld gebaseerd op waarden van een veld

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

Verwijderd

Topicstarter
Een veld in een tabel heeft de waarde Y of N (type veld VARCHAR(1))

Echter voor een zoekscherm moet ik niet de waarden Y of N krijgen maar JA of NEE.

Is het mogelijk in SQL dat als ik een veld opvraag dat ik dan JA terugkrijg bij de echte waarde Y en NEE bij de echte waarde N.

(Ik gebruik Interbase 6)

  • Grum
  • Registratie: Juni 2001
  • Niet online
Neem aan dat je dit wel kan verwerken in het code die je gebruikt om je zoekscherm te vullen.

Verwijderd

Topicstarter
Nee daar gaat het juist om.

Ik wil het in de query hebben als dat mogelijk is

  • -Tibo-
  • Registratie: Januari 2002
  • Niet online

-Tibo-

ow = teh

Is het niet handiger om het veld een ENUM('Ja','Nee') te maken? Inserts zijn net zo makkelijk en je output is in een keer goed.

  • Dash2in1
  • Registratie: November 2001
  • Laatst online: 31-08 22:49
Weet niet of het in Interbase bestaat, in Oracle zou je DECODE kunnen gebruiken ..

Verwijderd

Dit doe je niet in de database, maar in de GUI code.

Verwijderd

Verwijderd schreef op 12 augustus 2002 @ 11:33:
Nee daar gaat het juist om.

Ik wil het in de query hebben als dat mogelijk is
Wil je zeggen dat je dat niet in de code kan verwerken??
Kun je het niet, mag je het niet of heb je er geen zin in ofzo? Vreemde zaak...

Verwijderd

In principe kun je volgens de sql specificatie het volgende doen:

code:
1
2
3
4
5
6
7
8
9
SELECT id,
             CASE waarde
                   WHEN 'Y' THEN 'Ja'
                    ELSE 'Nee' END,
             evt_nog_iets
FROM
             jouw_tabel
WHERE
             expressie


succes, en laat even weten of het werkt of hoe je het hebt opgelost.

bron: Het SQL leerboek - Rick F. van der Lans

Verwijderd

Topicstarter
Verwijderd schreef op 12 augustus 2002 @ 11:54:
Wil je zeggen dat je dat niet in de code kan verwerken??
Kun je het niet, mag je het niet of heb je er geen zin in ofzo? Vreemde zaak...
Het gaat om een zoekform in een applicatie.

De gebruiker kan daar 3 dingen aangeven:

1) een edit veld waarin hij de zoekterm kan invullen
2) een combobox waar hij kan aangeven in welke onderdelen van de applicatie het systeem moet zoeken (bijv gebruikers, artikelen, enz...)
3) een combobox waar hij kan aangeven op welk veld er gezocht moet worden.


Nu is er dus een veld op een form die de waarde JA of NEE aangeeft (op het form wordt dat d.m.v. radiobuttons aangegeven).

Bij JA heeft dus het veld de waarde Y in de tabel en bij Nee de waarde N.

Per letter/cijfer die de gebruiker in het edit veld invult gaat het systeem zoeken.

Hij kan dus alleen nog maar een J hebben ingevuld maar dan moet het systeem wel gaan zoeken.

Dus daarom is het volgens mij noodzakelijk dat het veld in de query omgezet wordt naar de waarde (Y => JA en N => Nee)

Verwijderd

Topicstarter
Verwijderd schreef op 12 augustus 2002 @ 11:56:
code:
1
2
3
4
5
6
7
8
9
SELECT id,
             CASE waarde
                   WHEN 'Y' THEN 'Ja'
                    ELSE 'Nee' END,
             evt_nog_iets
FROM
             jouw_tabel
WHERE
             expressie
Case in select wordt niet ondersteunt door interbase.

Verwijderd

hmmz vreemd, postgresql en (zelfs) MySQL kunnen het en het is standaard in de sql92 specificatie en later

edit:

en misschien ook wel eerder

daarnaast kun je ook een IF THEN ELSE ENDIF constructie proberen

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

En anders doe je het met string manipulatie functies zoals een replace.
Pagina: 1