
正文
sqlserver的加法,SQL 加法
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
sql 中怎样将string类型的“1”转换成int类型的“1”用于加减法?
数据库中的字符型数据值是用单引号引起来的,如果不用单引号引起来的数字就会被认为是数字型,举个sqlserver 的例子,比如:
select '1'+'1';--这个会输出的是11
select 1+1;--这样的话输出的就是2
如果是字符型转换数字型的话也可以,就要函数处理,比如:
select convert(int,'1')+convert(int,'1');--这样输出的话就是2,因为函数将字符型已经转成了int型
相关问答
Q1: SQL语句如何实现加法?
update member set lastmoney = isnull(lastmoney,0) + 10 where id = '001' or name = 'abc'
有个问题需要小心一下,就是如果lastmoney这个字段为空的话,lastmoney + 10仍然是空的,所以需要使用isnull函数(SQLSERVER函数,如果ORACLE使用NVL)。表示如果是空的话,给一个默认值0.
Q2: sqlserver中如何在用户定义的函数里使用exec?
这里我举个例子,假如有一个函数dbo.NumAdd用来计算加法,那它可能是这样的:
DROP FUNCTION dbo.NumAdd
GO
CREATE FUNCTION dbo.NumAdd
( @A SMALLINT,
@B SMALLINT
)
RETURNS INT
AS
BEGIN
DECLARE @Ret INT
SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)
RETURN @Ret
END
你可以使用这样的方式调用函数并得到返回值:
DECLARE @M INT
SET @M = dbo.NumAdd(500,700)
select @M
现在,把这个函数修改成第一种使用存储过程的方式:
DROP Procedure dbo.NumAdd1
GO
CREATE Procedure dbo.NumAdd1
( @A SMALLINT,
@B SMALLINT,
@Ret INT OUTPUT
)
AS
BEGIN
SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)
END
GO
那么,你就可以通过下列的方法调用这个实际和函数dbo.NumAdd功能相同的存储过程:
DECLARE @M1 INT
EXEC dbo.NumAdd1 500,600,@M1 OUTPUT
SELECT @M1
这种方法是对标量函数较好的处理方法,而且,一个存储过程可以使用一个或者多个带有OUTPUT的参数来返回值。
再看第二种方法修改为存储过程的方式:
DROP Procedure dbo.NumAdd2
GO
CREATE Procedure dbo.NumAdd2
( @A SMALLINT,
@B SMALLINT
)
AS
BEGIN
DECLARE @Ret INT
SET @Ret = ISNULL(@A,0) + ISNULL(@B,0)
SELECT @Ret
END
GO
这样,你就可以使用下面的方法来调用:
DECLARE @M2 INT
CREATE TABLE #Temp (Result INT)
INSERT #Temp EXEC dbo.NumAdd2 800,600
SELECT TOP 1 @M2 = Result FROM #Temp
DROP TABLE #Temp
SELECT @M2
列出的这两种方法都是把函数改成存储过程的方法,而且在存储过程中可以使用EXEC、PRINT等函数中不能使用的内容。
这个解释你明白了吗?
Q3: sqlserver日期加减后的格式问题
如果是日期格式,那么不要管,你只要在取出来的时候转换成自己习惯的格式就可以了。
如果是字符格式,那么就预先转换好:
update [13工作信息]
set 离职日期=convert(varchar(10),cast(任职起始日期 as datetime)+1,120);
Q4: 怎么编写加减法运算的sql语句
直接通过“+”、“-”符号运算即可;
sql1:select 11 -5 from dual;结果就是 6;
sql2:select 11+5 from dual;结果就是11;
sql3:select sysdate -sysdate from dual;结果就是 0(时间类型);
解释:能进行加减运行的必须是数值类型number,或者是时间类型。字符串类型无法进行加减。
拓展资料:
SQL语言,是结构化查询语言(Structured Query Language)的简称。SQL语言是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统;同时也是数据库脚本文件的扩展名。
SQL语言是高级的非过程化编程语言,允许用户在高层数据结构上工作。它不要求用户指定对数据的存放方法,也不需要用户了解具体的数据存放方式,所以具有完全不同底层结构的不同数据库系统可以使用相同的结构化查询语言作为数据输入与管理的接口。
SQL语言语句可以嵌套,这使他具有极大的灵活性和强大的功能。
参考资料:
百度百科词条 结构化查询语言_








