当前位置:首页 » 编程语言 » sql语句相减

sql语句相减

发布时间: 2022-10-06 11:25:30

sql server语句怎么实现两个字符型相减

相减只有数字类型或日期类型可以操作,如果两个字符型字段存储的是数字或者日期格式的内容,可对两个字段进行转换,然后再作相减操作;

如:两个字符型(数字)的字段

ID1 ID2

1 2

2 4

执行语句:

selectcast(ID2asint)-cast(ID1asint)fromtablename;

如:两个字符型(日期)的字段

DATE1 DATE2

2015-08-01 2015-09-01

2015-07-01 2015-10-01

执行语句:

selectcast(DATE2asdatetime)-cast(DATE1asdatetime)fromtablename;

㈡ 请教一个SQL语句的问题,如何进行两行数据对应相减

数据库对数据是按行为单位,对列进行查询、运算等等操作进行投影的。
如果你想对同张表的两行数据对应相减,你应该让表自连接,连接条件就是你说的对应关系,然后连接后就变成一行,数值变为两列,就可以运算了
示例:
select a.cnt-b.cnt
from my_table a,my_table b
where 对应关系;

㈢ SQL问题,两字段相减问题

SELECT ISNULL(A字段,0)-ISNULL(B字段,0) FROM 表

㈣ sql语句求两条数据之间的差

sql中查询两个值之间的差直接用“-”(即减号)即可。

工具:SqlServer 2008 R2

步骤:

1、分别计算10-1,20.5-10.3,1-3,9-9(即分别计算整数中大数减小数、小数之间的相减,整数中小数减大数、整数减自己本身)

2、语句分别如下:

10-1

1select10-1

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

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

select 1+2 from al;

select 1-2 from al;

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

where 字段一=1

group 字段一

注:

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

2、where条件根据需要加

(5)sql语句相减扩展阅读:

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

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

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

㈥ 请教两个日期字段,相减得到分的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语句

直接通过“+”、“-”符号运算即可;

sql1:select 11 -5 from al;结果就是 6;

sql2:select 11+5 from al;结果就是11;

sql3:select sysdate -sysdate from al;结果就是 0(时间类型);

解释:能进行加减运行的必须是数值类型number,或者是时间类型。字符串类型无法进行加减。

拓展资料:

SQL语言,是结构化查询语言(StructuredQueryLanguage)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。

SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。

SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。

㈧ sql语句2个字段相减

select (case when a>b then a-b else b-a end) from info
更新那个字段
update info
set [字段]=(case when a>b then a-b else b-a end)

㈨ 在SQL中 两个表的数据怎么相减

说清楚一点:是两个视图中的元组相减还是两个视图中连接后的数据结果相减?
一个关系减一个关系可以用谓词NOT
IN或条件
<>
ANY进行关系操作运算。
两个关系中的数据相减可以连接后(相所要求的条件,比如是同一个人的工资和扣的养老金之类,连接条件就是同一个人的标识,可能是身份证号,职工号什么的)相减,这没有什么啊,两表连接后进行数据操作就可以了!句中一般和一个表中数据的加减没有区别:
select
A.gongzi-B.yanglao
as
Result,*
form
A,B
where
A.gonghao
=
B.gonghao

㈩ sql语句怎么来对日期进行相加减

在sql server里可以使用:
where start_date <=
DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))
and completion_date >=
to_date('2005-12-09', 'yyyy-mm-dd') ;

oracle中没有定义和sql server中一样的DateAdd函数,
oracle可以通过interval 'n' year/month/day/hour/minute/second/second(p,s)
的方式来增减时间
下面是自己在oracle中写的DateAdd函数
函数调用基本同sql server一样, 不过datepart部分需要以字符串的方式输入, 即
DateAdd(d,1,to_date('2005-12-09','yyyy-mm-dd'))
要改为
DateAdd('d',1,to_date('2005-12-09','yyyy-mm-dd'))

函数定义如下函数中的注释是datepart的新说明, 与sql server中的略有不同)
create or replace function DATEADD( datepart varchar2, num number, indate date ) return date is
Result date;
v_sql varchar2(1000);
v_datepart varchar2(30);
v_ms varchar2(13);
begin
v_datepart := lower(datepart);
/*
Datepart Abbreviations
year yy, y
quarter qq, q
month mm, m
day dd, d
week wk, w
hour hh, h
minute mi, n
second ss, s
millisecond ms
*/
case
when v_datepart in ('year','yy','y') then
v_sql := 'select :1 + interval '''||num||''' year from al';
when v_datepart in ('quarter','qq','q') then
v_sql := 'select :1 + (interval ''3'' month) * '||num||' from al';
when v_datepart in ('month','mm','m') then
v_sql := 'select :1 + interval '''||num||''' month from al';
when v_datepart in ('week','wk','w') then
v_sql := 'select :1 + (interval ''7'' day) * '||num||' from al';
when v_datepart in ('day','dd','d') then
v_sql := 'select :1 + interval '''||num||''' day from al';
when v_datepart in ('hour','hh') then
v_sql := 'select :1 + interval '''||num||''' hour from al';
when v_datepart in ('minute','mi','n') then
v_sql := 'select :1 + interval '''||num||''' minute from al';
when v_datepart in ('second','ss','s') then
v_sql := 'select :1 + interval '''||num||''' second from al';
when v_datepart in ('millisecond','ms') then
v_ms := to_char(num/1000,'fm999999990.000');
v_sql := 'select :1 + interval '''||v_ms||''' second(9,3) from al';
else
RAISE_APPLICATION_ERROR(-20001, ''''||datepart||''' is not a recognized dateadd option.' );
end case;

execute immediate v_sql into Result using indate;

return(Result);

EXCEPTION
WHEN OTHERS THEN
RAISE ;

end DATEADD;

热点内容
循迹小车算法 发布:2024-12-22 22:28:41 浏览:82
scss一次编译一直生成随机数 发布:2024-12-22 22:04:24 浏览:956
嫁接睫毛加密 发布:2024-12-22 21:50:12 浏览:975
linuxbin文件的安装 发布:2024-12-22 21:46:07 浏览:798
vlcforandroid下载 发布:2024-12-22 21:45:26 浏览:664
电脑做网关把数据发送至服务器 发布:2024-12-22 21:44:50 浏览:431
新华三代理什么牌子的服务器 发布:2024-12-22 21:33:21 浏览:342
欢太会员密码是什么 发布:2024-12-22 20:57:28 浏览:74
sqllocaldb 发布:2024-12-22 20:07:08 浏览:126
如何找到我的服务器 发布:2024-12-22 19:52:14 浏览:301