![]() |
1
2
不要用
改为使用此查询;
更新: 根据您对问题所做的更新,查询将是;
|
![]() |
2
0
一个表总是只有一行的规范有点奇怪。它不是无效的,但它是不寻常的。 如果表B为空,如果它包含零行,那么查询应该返回什么?一个错误?一套空的?或者是A的所有行? 如果表B包含多行,应该返回什么?一个错误?一套空的?A中与B中年份的非空值之一匹配的行?A的所有行? 最常见的情况是,它的边盒和角盒说明了规范…我们希望这些案子能被检验,我们需要知道要检验什么…然后我们可以开发一个查询。 有几个查询模式可以满足规范;最大的区别是那些边缘情况…表B为空,或表A中的年份列为空。 我可能倾向于这样做:
SQL小提琴演示 http://sqlfiddle.com/#!9/44c277/1
如果问题实际上是关于使用
呸! 回顾这个问题,它问的是sql server,而不是mysql。上面的语法是针对mysql的。对于SQL Server,则如下所示:
我们正在使用
|
![]() |
3
-1
假设您的内部查询只返回一行。 你可以这样做。
至于“如果表B中的年份为空,则返回表A中的所有行,否则按表B中的值筛选”这一行,请使用以下查询
我没有测试这个查询,但希望您能理解这一点。 |
|
4
-2
使用isnull并将null设置为0 选择ID,年份 从表A 其中year=(从表B中选择isnull(year,0) 希望能成功! |
![]() |
John D · 需要为NULL或NOT NULL的WHERE子句 4 月前 |
![]() |
Marc Guillot · 记录值时忽略冲突 5 月前 |
![]() |
Fachry Dzaky · 正确使用ROW_NUMBER 5 月前 |
![]() |
TriumphTruth · 从满足特定条件的数据集中选择1行 5 月前 |