Toon posts:

[Oracle/sql] NVL op geen resultaat*

Pagina: 1
Acties:

Verwijderd

Topicstarter
Een vraagje: Ik heb een query die een waarde selecteerd aan de hand van wat condities. Echter als niet aan de condities voldaan kan worden dan komt er een zero rows returned terug.

Ik heb geprobeerd met een nvl(,) te zorgen dat er altijd een waarde uitkomt echter dit werkt niet als er niets uit de query komt. Is er een manier om als er niets uit de query komt een '0' te selecteren?

Verwijderd

waarom wil je dat? :S

Verwijderd

Topicstarter
Omdat de resultaten in een xml bericht worden gezet en ik wil zorgen dat de container voorkomt in het bericht.

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Hoe ziet jouw query eruit?

https://fgheysels.github.io/


Verwijderd

CASE gebruiken (bestaat deze ook in Oracle ???) ?

[ Voor 51% gewijzigd door Verwijderd op 15-09-2003 12:11 ]


Verwijderd

je kan toch een OR id=1 ofzo opnemen
.. maarja dat lijkt me ook niet handig.
Ik weet niet van welke database je gebruikt maakt. Maar als het SQL is zou je in een SP kunnen afvangen of er wat uit de querie komt, zo nee dan een querie uitvoeren die wel een waarde terug geef

Verwijderd

Topicstarter
Met case heb ik het geprobeerd maar dan krijg je inconsistent datatypes.Omdat je enerzeijds de selectie van een variabele hebt en anderzijds een harde waarde als '0'

Query :

select nvl(tabel.variabele,'0')
from tabel
where tabel.cond1 = a
and tabel.cond2 = b
and tabel.cond3 = c

[ Voor 30% gewijzigd door Verwijderd op 15-09-2003 12:24 ]


  • Creepy
  • Registratie: Juni 2001
  • Laatst online: 18-08 21:00

Creepy

Tactical Espionage Splatterer

Verwijderd schreef op 15 September 2003 @ 12:20:
je kan toch een OR id=1 ofzo opnemen
.. maarja dat lijkt me ook niet handig.
Ik weet niet van welke database je gebruikt maakt.
Lezen? Hij geeft aan dat ie Oracle gebruikt.
Maar is het niet logischer om in je code de XML zo aan te maken dat deze correct is als er geen resultaten zijn i.p.v. je query toch geforceerd een resultaat te laten genereren?

"I had a problem, I solved it with regular expressions. Now I have two problems". That's shows a lack of appreciation for regular expressions: "I know have _star_ problems" --Kevlin Henney


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Dat kun je op verschillende manieren oplossen, maar om te zien wat handig is zul je ff je query moeten posten.

Who is John Galt?


Verwijderd

Creepy schreef op 15 september 2003 @ 12:23:
[...]

Lezen? Hij geeft aan dat ie Oracle gebruikt.
Maar is het niet logischer om in je code de XML zo aan te maken dat deze correct is als er geen resultaten zijn i.p.v. je query toch geforceerd een resultaat te laten genereren?
ja ik zag het al ja :o, wou net mijn bericht aanpassen

Verwijderd

Topicstarter
justmental schreef op 15 September 2003 @ 12:23:
Dat kun je op verschillende manieren oplossen, maar om te zien wat handig is zul je ff je query moeten posten.
Heb hem geplaatst in de vorige post. Heb hem geedit maar toen waren jullie er al weer zo snel bij. :P

  • whoami
  • Registratie: December 2000
  • Laatst online: 22:54
Tja, als je niets terugkrijgt, kan je ook onmogelijk die query gaan forceren om toch iets terug te geven...

https://fgheysels.github.io/


  • justmental
  • Registratie: April 2000
  • Niet online

justmental

my heart, the beat

Verwijderd schreef op 15 September 2003 @ 12:25:
Heb hem geplaatst in de vorige post. Heb hem geedit maar toen waren jullie er al weer zo snel bij. :P
Dat is weinig specifiek zo.
Kun je maximaal 1 of meer resultaten krijgen?
Als je meer resultaten krijgt fetch je er dan maar 1 of meer?

Who is John Galt?


  • Swa-baldie
  • Registratie: Juni 2002
  • Laatst online: 19-06-2023
Hoe verwerk je de data? Als je met een cursor werkt dan zou je bv ook de %notfound kunnen gebruiken.

Verwijderd

Verwijderd schreef op 15 September 2003 @ 12:21:
Met case heb ik het geprobeerd maar dan krijg je inconsistent datatypes.Omdat je enerzeijds de selectie van een variabele hebt en anderzijds een harde waarde als '0'

Query :

select nvl(tabel.variabele,'0')
from tabel
where tabel.cond1 = a
and tabel.cond2 = b
and tabel.cond3 = c
Eventueel de variabele casten ?

  • PhoneTech
  • Registratie: Mei 2000
  • Laatst online: 18-08 14:38
De makkelijkste oplossing is een stored procedure, waar hij afvangt als er nix uit komt, en dat hij uiteindelijk nog iets terug geeft

  • Swa-baldie
  • Registratie: Juni 2002
  • Laatst online: 19-06-2023
PhoneTech schreef op 15 september 2003 @ 13:45:
De makkelijkste oplossing is een stored procedure, waar hij afvangt als er nix uit komt, en dat hij uiteindelijk nog iets terug geeft
Dan nog altijd een function maar goed...
Pagina: 1