计算存储过程

时间:2016-06-23 05:39:57

标签: sql-server stored-procedures

我有一个存储过程。

我想将column1的值与column2一起添加到 像:

column3 = (@column1 + @column2)

不是添加值,而是我的sql存储过程将值连接起来。

我宣布了

column1 = 20
column2 = 40

答案必须是column3 = 60,但我得到column3 = 2040

但是在主表中,column1column2被声明为nvarchar,我无法更改表格。我试图转换存储过程中的列,但获得相同的anser 我转换为convert(float,@column1)convert(float,@column2)

4 个答案:

答案 0 :(得分:3)

列的数据类型可以是字符串。

你应该试试..

        column3 = (cast(@column1 as int) + cast(@column2 as int))

答案 1 :(得分:3)

您应该使用Cast功能:

select Cast(column_1 as float)+cast(Column_2 as Float) Column_3

答案 2 :(得分:1)

正确定义参数的数据类型。

你应该这样做:

Declare @column1 INT = 20, @column2 INT = 40, @column3 INT

SET @column3 = @column1 + @column2;

SELECT @column3 AS [Result];

在我的身上测试过。希望有助于...:)

答案 3 :(得分:1)

DECLARE @test TABLE (
    column1 nvarchar(50),
    column2 nvarchar(50)
)

INSERT INTO @test VALUES
(20, 40),
('20','40')

SELECT CAST(column1 as int) + CAST(column2 as int) as column3
FROM @test

SELECT CAST(column1 as float) + CAST(column2 as float) as column3
FROM @test

会给你:

column3
60
60