Ik wil een aantal dingen uit de database selecteren via een procedure.
Ik heb 2 parameters namelijk par_MenuId en par_SubMenuId.
Als alleen par_MenuId is ingeveld wil ik resultaten selecteren waar menuId een waarde heeft en subMenuId de waarde NULL heeft (geen waarde dus).
Is par_MenuId ingevuld en par_subMenuId ook dan wil ik waardes selecteren waar menuId een waarde heeft en subMenuId ook (dus niet null).
Dit heb ik werkend, alleen wil ik nu ook kunnen zoeken waar par_MenuId ingevuld is en menuSubId niet leeg is. Dit kan doormiddel van een parameter zijn.
Vul ik dus par_MenuId = 2 en par_SubMenuId = 'notNull' in dan wil ik graag alle resultaten waar menuId = 2 en subMenuId != Null.
Ik krijg het niet voor elkaar. Wie kan mij helpen?
Dit is de code die ik nu heb
SELECT pageId,
menuId,
subMenuId,
content,
orderId,
panelX,
panelY,
panelWidth,
panelHeight,
active,
updateDate,
insertDate
FROM `web_Pages`
WHERE menuId = par_MenuId AND
CASE WHEN NULLIF(par_MenuSubId, '') = 'notNull' THEN subMenuId IS NOT NULL
ELSE
CASE
WHEN NULLIF(par_MenuSubId, '') IS NOT NULL THEN subMenuId = par_MenuSubId
ELSE subMenuId IS NULL END
END
AND active=1
ORDER BY orderId ASC
Het werkt als ik par_MenuId invul en par_SubMenuId leeg laat, ook als ik beide invul, maar als ik par_MenuId invul en par_SubMenuId invul als -> notNull dan krijg ik geen resultaten te zien
[size=xsmall]Toevoeging op 22/01/2015 19:04:06:[/size]
Niemand?
Of een andere oplossing, misschien is het idee van de case in dit geval niet juist?