dmr*_*dmr 3 sql variables select sql-server-2000 coalesce
如何修复存储过程的这一部分?
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))
Run Code Online (Sandbox Code Playgroud)
set @override = (coalesce((select override from groupPreferences g inner join
preferences p on g.preferenceId = p.preferenceId where groupId = 13
and description = 'myDescription'), 1))
Run Code Online (Sandbox Code Playgroud)
我会去寻找像这样的东西:
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)
Run Code Online (Sandbox Code Playgroud)
但你可以这样做:
SELECT @override = ISNULL((select override
from groupPreferences g
inner join preferences p on g.preferenceId = p.preferenceId
where groupId = 13
and description = 'myDescription'), 1)
Run Code Online (Sandbox Code Playgroud)