sqlserver做计算,SQL 计算

sqlserver 计算字符串

declare @num1 int,@num2 int; -- 如果是int型直接+就可以

创新互联服务项目包括珙县网站建设、珙县网站制作、珙县网页制作以及珙县网络营销策划等。多年来,我们专注于互联网行业,利用自身积累的技术优势、行业经验、深度合作伙伴关系等,向广大中小型企业、政府机构等提供互联网行业的解决方案,珙县网站推广取得了明显的社会效益与经济效益。目前,我们服务的客户以成都为中心已经辐射到珙县省份的部分城市,未来相信会继续扩大服务区域并继续获得客户的支持与信任!

set @num1=1;

set @num2=2;

select (@num1+@num2) num;

declare @num1 varchar(2),@num2 varchar(2); --非int类型需要convert为int型后+

set @num1='1';

set @num2='2';

declare @tempnum1 int,@tempnum2 int;

set @tempnum1 = CONVERT(int,@num1);

set @tempnum2 = CONVERT(int,@num2);

select (@tempnum1+@tempnum2) num;

sql server 简单的除法运算

select (select count(*) as y from t where s='b')

(select count(*) as n from t where s!='b')

在SqlServer默认当做int类型,两个int变量相除得到的还是个int类型 ,所以只要把其中一个改成小数类型的就可以得到你要的结果了。

除法运算

一款简单的除法运算题目,小朋友们懂的做,很简单的除法运算,小朋友们来挑战一下

运算是一种游戏,适用于小孩子对于数学的理解。

sqlserver日期计算的问题

dateadd是一个用来相加的一个函数,dd指的是日期里面的日,DATEADD(dd,

DATEDIFF(dd,0,getdate()),

0)

意思是将DATEDIFF(dd,0,getdate())函数返回的日期增加0天,如果将0改成1,DATEADD(dd,

DATEDIFF(dd,0,getdate()),

1)那就是加一天

DATEDIFF函数返回的是两个日期之间的间隔,dd就是间隔多少天。

求教oracle如何做到图中sqlserver的运算效果

你这SQL是利用UPDATE的执行顺序来运行的

在UPDATE批量数据的时候,先给变量 @nDiffQty赋值,再根据数量层层减nQty的值赋值给原来的nDiffQty。

大概逻辑就是根据Type非则取总数,否则用原来的总数来减原列数量并赋值。感觉这个逻辑会因执行UPDATE的顺序而有差异。

如果转成Oracle的话可以用以下SQL:

----------------------先弄两个值

DECLARE

n_DiffQty NUMBER;

s_Type VARCHAR2

(4);

-----------------生成游标------------------

CURSOR aa

IS

select id, sType,nSumQty, nQty from #1;

-------------------循环----------------

FOR

a IN aa

LOOP

IF (a.sType='')

THEN

n_DiffQty:=a.nSumQty;

ELSE

n_DiffQty:=n_DiffQty-a.nQty;

END IF;

Update #1 Set nDiffQty = n_DiffQty where id=a.id;

END LOOP;

sqlserver中如何进行截取字符串然后再计算?

oracle中的方法可以这样,但是不知道sql server中支不支持相应的函数,你可以试一下

select replace(t.number,'m','') num from table1 t //去掉m 变成100*200但是这是varchar类型不是数字

(1)instr(replace(t.number,'m',''),'*',1) 从100*200的第1位截取到 '*' 的长度,注:这时是长度,不是数字100

substr(num,1,instr(replace(t.number,'m',''),'*',1)-1) 从第一位截取到'*'之前,即取出100

(2)instr(replace(t.number,'m',''),'*',-1) 从100*200的最后1位截取到 '*' 的长度

substr(num,-1,instr(replace(t.number,'m',''),'*',-1)-1) 取出200

然后(1)*(2)就可以了(把substr里面的num换成 replace(t.number,'m',''))

思路就这样,你再整理一下就可以了


网页名称:sqlserver做计算,SQL 计算
转载源于:http://scyanting.com/article/hdpeij.html