case whenを記録しましょう(whereの後で条件をフィルタします)

651 ワード

SELECT
	PrUser.*
FROM
	PrUser
WHERE
	(PrUser. STATUS != '4')
AND (
	PrUser. STATUS = '1'
	OR PrUser. STATUS = '2'
)
AND PrUser.uid NOT LIKE '%admin%'
AND CASE
WHEN (
	PrUser.jlunit IS NOT NULL
	AND PrUser.jlunit <> ''
) THEN
	(PrUser.jlunit = ?)
WHEN (
	PrUser.partUnitId IS NOT NULL
	AND PrUser.partUnitId <> ''
) THEN
	(PrUser.partUnitId = ?)
WHEN (
	PrUser.orgId IS NOT NULL
	AND PrUser.orgId <> ''
) THEN
	(PrUser.orgId = ?)
END
AND PrUser.eid = 'esc'
ORDER BY
	PrUser.wechat ASC 

主にcase when thenは初めてこれを使って、それから同時に空ではないとnullではないと判断します