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;
....

SQL语句,同一个表中,两个字段相减,应该怎么写?
在oracle中加减乘除都是可以直接select的。select 1+2 from dual;select 1-2 from dual;select 字段一,MAX(字段二)-MIN(字段二) from 表 where 字段一=1 group 字段一 注:1、字段二必须是数值型的,或数据都可转换为数值 2、where条件根据需要加 ...

SQL语句,同一个表中,两个字段相减,应该怎么写?
在Oracle数据库中,如果你需要从同一个表中对两个字段进行加减运算,可以使用SQL的简单算术运算和聚合函数。首先,对于两个字段的简单加减,例如字段A和字段B,可以直接在SELECT语句中进行,如下所示:sql SELECT字段A,字段A+字段B FROM表名 WHERE条件;--可以根据需要添加WHERE子句 SELECT字段A,字段B-字...

oracle 同一个表两个不同列的时间相减,SQL怎么写?请赐教!!
date 类型是可以直接相减的,单位是天 如:select time2 - time1 from TB 如果varchar类型的可以先转成date类型 如:select to_date(time2,'yyyy-mm-dd hh24:mi:ss') - to_date(time1,'yyyy-mm-dd hh24:mi:ss') from TB

sql 语句 两个字段的字符相减
SELECT A,B, REPLACE(B, A, '') FROM BIAO S;

sql语句2个字段相减
如果整张表的某个number字段都要减10,如下 update table set number字段= number字段- 10 如果只把number字段= 1000的减10,如下 update table set number字段= number字段- 10 where number字段= 1000;

求sql语句。得出表中两列相减的值
1、语句如下:select A, B, A-B as C from 表1 2、计算列:可以使用同一表中的其他列的表达式计算得来。表达式可以是非计算列的列名、常量、函数,也可以是用一个或多个运算符连接的上述元素的任意组合。表达式不能为子查询。语句中的A-B就是计算列,as C的意思是给这个计算列起个列名叫C。...

请教两个日期字段,相减得到分的sql语句怎么写?
DATEDIFF ( datepart , startdate , enddate )datepart 时间单位 这个是小时差 datediff(hour,开始时间,结束时间)根据题主:如果要得到小数,SELECT CAST(DATEDIFF(MINUTE,'2016-01-01 12:10','2016-01-04 14:40 ')AS DECIMAL)\/60 由于 datediff得到的都是int,所以要转一下 ...

sql同一张表中分组相减
Select A.数量-B.数量From 进出表 A Inner Join 进出表 BOn A.编号=B.编号 And A.标志='进' And B.标志='出'

sql语句怎么写 两个查询值相减 满足条件的输出
DECLARE @result INT IF (需求量>库存量)BEGIN SET @result=需求量-库存量 SELECT @result END

SQL问题,两字段相减问题?
SELECT ISNULL(A字段,0)-ISNULL(B字段,0) FROM 表

相似回答