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) 希望能成功! |
Duvan · 将逗号(,)替换为点(.)[副本] 2 年前 |
Mateen Bagheri · 选择表的计数并选择其自身 2 年前 |
SoT · SQL Server中求和函数的工作方式 2 年前 |
NKAT · 将列值聚合到列表中会产生错误 2 年前 |
deanpillow · 返回两列中有一个匹配值的记录 2 年前 |
snowflakes74 · 在Dapper中异步查询多个结果 2 年前 |