我正在尝试找到一种方法来根据变量的状态在查询中赋值。例如使用 COALESCE
命令,但我需要它如下所示。
如果 null 分配 a,否则分配 b。
EX: COALESCE(valToCheck, a, b)
有这样的功能吗?我在网上找不到任何关于它的信息。目前正在这一行中使用:
select distinct a.right_id, COALESCE(b.right_id, '0', '1') this_bit
from app_right a, (
select rol.app_role_id
,rol.app_parent_id
,rol.right_id
from app_role rol
where rol.application_id = @APP_ID
) b
CONNECT BY ( select b.app_role_id from app_user a
,app_user_right_xref b
where a.user_id = b.user_id
and a.sec_user = p_sec_user)
最佳答案
您可以使用 CASE
语句:
select distinct
a.right_id,
CASE WHEN b.right_id IS NULL THEN 0 ELSE 1 END AS this_bit
请注意,如果您真的想要一点,您应该使用CAST
:
select distinct
a.right_id,
CAST(CASE WHEN b.right_id IS NULL THEN 0 ELSE 1 END AS BIT) AS this_bit
关于mysql - 如果值为空或不为两个新值,则在 SQL 中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30736774/