有没有办法有条件地为sql server中的变量赋值,比如
SET SDate = Isnull((Select StartDate from SData), Select EDate from Table2)
如果第一个查询返回null或没有记录,则应从tabl2中获取值。
答案 0 :(得分:1)
你的版本非常接近。你可以这样写:
SET SDate = Isnull((Select StartDate from SData),
(Select EDate from Table2)
);
子查询总是需要用自己的括号包围。
也就是说,您的查询预先假定两个表最多只有一行。这似乎不是一个好的假设。如果其中任何一行有多行,您将获得一个"子查询返回多行"错误。