如何编写以下SQL查询:
'Select *
from Address
where cityname like %1
and zipcode = %2'
当邮政编码是可选的时候?
Zipcode是从urlquery中获得的。所以它可能是空的或可能是有效的邮政编码。
如果它为空(''),则查询应返回所有行,如果它不为空,则它应作为查询的附加'和'参数。
答案 0 :(得分:1)
SELECT *
FROM address
WHERE cityname LIKE %1
AND zipcode = COALESCE(NULLIF(%2, ''), zipcode);
如果%2
为空,NULLIF
将返回NULL
,COALESCE
将返回zipcode
,条件将评估为TRUE
。< / p>