我有一个存储过程。
我想将column1的值与column2一起添加到 像:
column3 = (@column1 + @column2)
不是添加值,而是我的sql存储过程将值连接起来。
我宣布了
column1 = 20
column2 = 40
答案必须是column3 = 60
,但我得到column3 = 2040
。
但是在主表中,column1
和column2
被声明为nvarchar
,我无法更改表格。我试图转换存储过程中的列,但获得相同的anser
我转换为convert(float,@column1)
和convert(float,@column2)
答案 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