如何修复存储过程的这一部分?
select将返回1,0或null。如果select返回1或0,我希望@override设置为该值。如果它返回null,那么我希望@override设置为1.
我的语法有问题;我被告知“选择'附近的语法不正确”和“不正确的sytax附近'”'“。
这是sql:
set @override = (coalesce(select override from groupPreferences g inner join
preferences p on g.preferenceId = p.preferenceId where groupId = 13
and description = 'myDescription'), 1))
答案 0 :(得分:7)
set @override = (coalesce((select override from groupPreferences g inner join
preferences p on g.preferenceId = p.preferenceId where groupId = 13
and description = 'myDescription'), 1))
答案 1 :(得分:5)
我会选择这样的东西:
select @override = override
from groupPreferences g
inner join preferences p on g.preferenceId = p.preferenceId
where groupId = 13
and description = 'myDescription'
SET @override = ISNULL(@override, 1)
但你可以这样做:
SELECT @override = ISNULL((select override
from groupPreferences g
inner join preferences p on g.preferenceId = p.preferenceId
where groupId = 13
and description = 'myDescription'), 1)
答案 2 :(得分:0)
得到了答案 - 我错过了一个(在“coalesce”之后。