【原创】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 null null
以上,原本我需要的是id=2的时候,subNum = 10,结果是null了。
此时使用左连接,就不能使用减了,就要在程序里面处理了。
【原创】sql:慎用【数字字段1 - 数字字段2】这样的sql(10-null = null)mysql的更多相关文章
- 在论坛中出现的比较难的sql问题:16(取一个字段中的数字)
原文:在论坛中出现的比较难的sql问题:16(取一个字段中的数字) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路. 问题:取一个字段中的数字http://bbs.csdn ...
- SQL sqlserver order by 1,order by 后面直接加数字,多个字段排序
①select * from table order by n 表示select里面的第n个字段 ②多个字段排序
- mysql将字符串字段转为数字排序或比大小
SELECT * FROM Student WHERE 1 = 1 ORDER BY -ID DESC ; SELECT * FROM Student WHERE 1 = 1 ORDER BY (ID ...
- SQLServer 2008 R2 对同时含有数字和中文的字段进行排序
若是数据库中的某一个字段名为bedNO,类型为nvchar,里面有{1,2,3,11,12,23,加2,加3}这些数据. 此时我需要对这些数据进行排序,数字按大小拍前面,汉字按第一个字拼音首字母的顺序 ...
- Mysql按数字大小排序String字段
问题是这样的,当我们按由大到小的顺序排序一组数字的时候,它应该如此: 9800 8000 900 但如果是这些数字是以String类型存储的话,直接排序的结果会是这样: 9800 900 8000 当 ...
- access数据库用sql语句添加字段,修改字段,删除字段
用 Create Table 建立一个表 Table1 ,主键是自动编号字段,另一个字段是长度是 10 的文本字段. 代码如下:CREATE TABLE Table1 (Id COUNTER CONS ...
- Mysql数据库里面的String类型依照数字来排序以及按时间排序的sql语句
今天做项目的时候,遇到个小小的问题,在数据库中查询的时候,要用String类型的ID进行一下排序!(注:ID字段为 varchar 类型) 解决的方法: 如: SELECT * FROM Stude ...
- sql语句判断是否为数字、字母、中文
1. sql语句判断是否为数字.字母.中文 select ascii(字段) 数字:48-57字母:65-123汉字:123+ 如,要删除某个全为数字的字段 DELETE FROM table WH ...
- SQL server 2008 添加,删除字段
添加,刪除字段 如果要在数据表中添加一个字段,应该如何表示呢?下面就为您介绍表添加字段的SQL语句的写法,希望可以让您对SQL语句有更深的认识. 通用式: alter table [表名] add [ ...
随机推荐
- WebForm之FileUpload控件(文件上传)
FileUpload控件要与Button.LinkButton.ImageButton配合使用 FileUpload控件的方法及属性: 1.SaveAs("要上传到服务器的绝对路径" ...
- 【HDU 1757】 A Simple Math Problem
题 Description Lele now is thinking about a simple function f(x). If x < 10 f(x) = x. If x >= 1 ...
- MyEclipse10中导入的jquery文件报错(出现红叉叉,提示语法错误)
为了做一个页面特效,导入了一个jQuery文件,怎想,myeclipse竟然报错说是语法错误,但是这个js文件我是从官网上下载的,不应该出错才对,百度谷歌之后终于找到了解决办法: 选中报错的js文件, ...
- @RestController注解下返回到jsp视图页面(转)(转)
这个问题我也遇到过,下面的方法可以试试 蓝萝卜blu @RestController注解下返回到jsp视图页面 spring4.1中添加了@RestController注解很方便,集成了@Respon ...
- javaScript基础练习题-下拉框制作
1.基础回顾 如何让一个段javascript在文档加载后执行,(因为自己忘了,所以顺便复习一下) window.onload = function(){}; <!DOCTYPE html PU ...
- asp.net input怎么获取值
前台: <input type="hidden" name="content" value="content"> 后台: Req ...
- TOMOYO Linux(undone)
目录 . TOMOYO Introduction . TOMOYO Sourcecode Analysis 1. Introduction TOMOYO是一款基于LSM Framework实现的LSM ...
- C#通过编程方式实现Ping
代码是照着书敲的,贴出来方便平时参考 using System; using System.Collections.Generic; using System.Linq; using System.T ...
- Android学习笔记01-Mac下搭建Java开发环境
一 安装JDK 下载 mac 下专用的jdk1.7, 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downlo ...
- MVC执行顺序
MVC在底层和传统的asp.net是一致的,在底层之上,相关流程如下: 1)Global.asax里,MvcApplication对象的Application_Start()事件中,调用 RouteC ...