【原创】sql:慎用【数字字段1 - 数字字段2】这样的sql(10-null = null)mysql
如果只有一個表的情況下
a表:
id num1,num2
1 10 5
2 10 0
3 20 0
?
select id, num1,num2,num1 - num2 AS subNum from a;
這種情況下:
結果如下:
id num1 num2 subNum
1 10 5 5
2 10 0 10
3 20 0 20
?
單表情況下,這樣在sql中,使用減號“-”是沒有問題的(數字字段,必須不能為null),如果有字段為null,那么減之后的結果也為null,例:10 - null = null
但是如果是2張以上的表進行關聯,即使每個表的字段都不為null,但是,左關聯,右表中的記錄如果沒有,則為null
表b:
id num3
1 5
3 0
?
select a.id, b.id, a.num1, b.num3, a.num1 - num3 AS subNum from a a
left join b b on a.id=b.id
結果:
id id num1 num3 subNum
1 1 10 5 5
2 null 10 null ?null
?
以上,原本我需要的是id=2的時候,subNum = 10,結果是null了。
?
此時使用左連接,就不能使用減了,就要在程序里面處理了。
?
總結
以上是生活随笔為你收集整理的【原创】sql:慎用【数字字段1 - 数字字段2】这样的sql(10-null = null)mysql的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 分布式系统阅读清单
- 下一篇: R 语言开发环境搭建