Goede morgen,

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?

Reageren