Мне нужно подставить условия запроса для выбора количества записей в зависимости от переданного параметра
Пишу 2 запроса, а как в 1 совместить не знаю
если parent_uid равен нулю, мне нужно выполнить:
SELECT count(*) FROM TABLE WHERE
parent_uid IS null AND name =
:name AND tenant_uid = :tenant_uid;
еще:
SELECT count(*) FROM TABLE WHERE
parent_uid = :parent_uid AND name =
:name AND tenant_uid = :tenant_uid
Это псевдокод того, что мне нужно
IF parent_uid IS null
THEN SELECT count(*) FROM TABLE WHERE parent_uid IS null AND name = :name AND tenant_uid = :tenant_uid
ELSE SELECT count(*) FROM TABLE WHERE parent_uid = :parent_uid AND name = :name AND tenant_uid = :tenant_uid END IF;
/**
* returns the count of categories that contain all parameters passed
* @param name category name
* @parm parentUid parent category uid
* @param tenantUid tenant uid
* @return count of records
*/
public int checkCategoryUniqueName(UUID parentUid, String name, UUID tenantUid)
{
MapSqlParameterSource map = new MapSqlParameterSource()
.addValue(PARENT_UID_PARAMETER, parentUid)
.addValue(NAME_PARAMETER, name)
.addValue(TENANT_UID_PARAMETER, tenantUid);
return jdbcTemplate.queryForObject(GET_ECATEGORY_COUNT, map , Integer.class);
}
🤔 А знаете ли вы, что...
Java обладает богатой стандартной библиотекой, включая коллекции, ввод/вывод, сетевые операции и многое другое.
Нет необходимости в "если".
WHERE (:parent_uid IS NULL AND parent_uid IS NULL) OR (parent_uid=:parent_uid)
Вам лучше создать правильную строку SQL на вашем языке (я думаю, Java).
String sqlParentUid = " parent_uid IS null "
if (parentUid != null) { // parentUid from function
sqlParentUid = " parent_uid = " + parentUid.toString()
}
затем просто добавьте эту часть в базу sql и запустите запрос