SQL语句,同一个表中,两个字段相减,应该怎么写?

字段一 字段二 字段三
1 10 5
2 12 8
3 9 4
我想要显示结果为:
字段一 运算结果
1 5
2 4
3 5

在oracle中加减乘除都是可以直接select的。

select 1+2 from dual;

select 1-2 from dual;

select 字段一,MAX(字段二)-MIN(字段二) from 表

where 字段一=1

group 字段一

注:

1、字段二必须是数值型的,或数据都可转换为数值

2、where条件根据需要加

扩展资料:

1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。

2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。

3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。

参考资料来源:百度百科-结构化查询语言

温馨提示:答案为网友推荐,仅供参考
第1个回答  2021-03-30
这个条件取出的数据中,不仅不含“小明”,也不包含空值的数据。这个坑千万要记住!!很容易出现。所以后来,在使用!=的时候,习惯性用(t.name != ‘小明’ or t.name is null)。只要使用不等于的时候就加上 or 字段 is null 的语句,但是如果where 后面有多个条件,不要忘记括号的存在哟~~否则会出现逻辑问题

2. 关于jion

不管是left join 、ight join 还是inner join ,一定要确保连接两张表的字段在这两张表中都是不重复的;不要偷懒!处理数据着急、心慌意乱、粗心、偷懒是大忌啊!! 看一看count(*) 和count(distinct 字段) 的值是不是相等的。因为你不能保证技术小哥哥不犯错。

3. 关于时间

切记不能写<=’2019-10-23’ !为啥??

一般情况下,数据库中的时间都是年月日时分秒格式的。

<’2019-10-23’ 是指2019年10月23日之前,不包括10月23日的意思;

但是,<=’2019-10-23’ 包含了2019年10月23日00时00分00秒,你多出这一个尴尬的时间是为啥?一般情况下,数据分析不会有这么奇怪的时间阶段要求吧?

4. 关于字段类型

where 字段里面涉及的字段,在写条件之前需要知道它们的格式,尤其是弄清楚是字符号串类型还是数字类型。取不出数据就尴尬了,因为这个原因跟业务撕逼输了,真的想找个地缝钻进去。Where t.type=1 结果人家存的字符串格式!WHAT!?

5. Set @变量名称=变量值 真的十分方便

针对需要重复使用的代码,如果代码是嵌套式的;或者需要跑好几段sql代码;比如做每日数据监控的时候,where date>”2019-10-23”,时间是需要替换的,每次都重新输入好几个地方非常麻烦,还有可能因为手抖输错了,然后run的时候报错了!此时脑袋里面出现几个大大的问号!这时,可以这样

Set @dt=’2019-10-23’

Select * from tableA where data>=@dt

每次只需要修改一下 @dt=后面的日期值就行啦~~

6. Case when

我时常会忘记写END ,然后跑代码的时候报错!尴尬!如果你没有请忽略~~~

Case when t.age<18 then 1

When t.age>=18 and t.age<25 then 2

When …

End

7. 逗号要是英文格式的呀

有时候写完字段的中文别名,没有把输入法切换回来,顺手打个中文“,”没有注意。跑代码的时候就报错!尴尬~~比如以下这种

Select t.date 日期,

t.name姓名,……

8. Left /right/mid 习惯性和replace() 嵌套使用

因为有的数据不知道为什么(可能是IT代码写得不够规范),某列数据有些值得前后或者中间居然有空值,比如身份号码,所有如果此时使用mid(字段,7,4) 取四个字符串,就不能取出想要的字段,可能个别的错误值成了建模样本中的异常数据。

后来,我习惯用mid(replace(字段,’ ‘,’’),7,4)来代替,有备无患,小心使得万年船嘛~

暂时先想到这些,后面想起来再补充。。
第2个回答  2021-04-01
SQL语句,同一个表中,两个字段相减,应该怎么写?在oracle中加减乘除都是可以直接select的。
select 1+2 from dual;
select 1-2 from dual;
select 字段一,MAX(字段二)-MIN(字段二) from 表
where 字段一=1
group 字段一
注:
1、字段二必须是数值型的,或数据都可转换为数值
2、where条件根据需要加
扩展资料:
1、SQL数据定义功能:能够定义数据库的三级模式结构,即外模式、全局模式和内模式结构。在SQL中,外模式又叫做视图(View),全局模式简称模式( Schema),内模式由系统根据数据库模式自动实现,一般无需用户过问。
2、SQL数据操纵功能:包括对基本表和视图的数据插入、删除和修改,特别是具有很强的数据查询功能。
3、SQL的数据控制功能:主要是对用户的访问权限加以控制,以保证系统的安全性。
第3个回答  2021-03-30
SQL语句,同一个表中,两个字段相减,应该怎么写? 1、首先打开安装好的SQL server软件,并连接到自己的数据库。
2、在对象资源管理器中,找到需要的表或者创建表,如图所示。
3、选中该表,然后鼠标右键菜单中选择【编写表脚本为】->【INSERT到】->【新查询编辑器窗口】。
4、会自动生成该表的所有字段属性,如图所示。
5、最后还可以进行查询操作:鼠标右键表->菜单中选择【编写脚本为】->【SELECT到】->【新查询编辑器窗口】。 select 字段一,MAX(字段二)-MIN(字段二) from 表
where 字段一=1
group 字段一
注:
1. 字段二必须是数值型的,或数据都可转换为数值
2. where条件根据需要加
第4个回答  2011-02-25
在oracle中加减乘除都是可以直接select的。
select 1+2 from dual;
select 1-2 from dual;
....