2016-07-24 55 views
0

有什么办法有条件值分配给SQL Server中的变量,就像有条件将值分配给SQL变量

SET SDate = Isnull((Select StartDate from SData), Select EDate from Table2) 

如果第一次查询返回null或没有记录存在,则应该从tabl2拿起值。

回答

1

您的版本非常接近。你可以这样写:

SET SDate = Isnull((Select StartDate from SData), 
        (Select EDate from Table2) 
       ); 

子查询总是需要被它自己的圆括号包围。

也就是说,您的查询预设两个表最多只有一行。这似乎不是一个好的假设。如果其中一个有多行,则会出现“子查询返回多行”错误。

+0

谢谢,我错过了样本中的最大值(日期) –