gpt4 book ai didi

sql - 将空 varchar 转换为数字

转载 作者:行者123 更新时间:2023-12-02 03:40:39 32 4
gpt4 key购买 nike

我使用的是 SQL Server 2008 R2 和 Microsoft SQL Server Management Studio 0.50.2500.0。

在我的存储过程中,

我正在将 varchar 转换为数字(18,2)。

select convert(numeric(18,2),' ')

当值为“”时,它返回 0.00,这是必需的。

但是现在,它给出了错误 “将数据类型 varchar 转换为数字时出错。”

谁能告诉我我做错了什么?或者哪个做出了这个改变?

提前致谢。

最佳答案

对于,DECLARE @VAL1 float;
在执行此语句时,
select convert(numeric(18,2),(case when 2=1 then @VAL1 else @VAL end ));
Sql server 内部转换 @VALFloat ( datatype of @VAL1 ) 然后比较给你输出为零。

DECLARE @VAL nvarchar(10);
DECLARE @VAL1 float;
set @VAL=' ';
set @VAL1=12.123;
select @VAL,@VAL1
select CONVERT(float,@VAL)--done by sql server internally
select convert(numeric(18,2),(case when 2=1 then @VAL1 else @VAL end ));

但是,对于 DECLARE @VAL1 numeric(18,2)
它实际上在 sql server 内部转换时出错。
DECLARE @VAL nvarchar(10);
DECLARE @VAL1 numeric(18,2);
set @VAL=' ';
set @VAL1=12.123;
select @VAL,@VAL1
select CONVERT(numeric(18,2),@VAL)--at this point,sql sever unabled to convert @VAL to datatype Numeric
select convert(numeric(18,2),(case when 2=1 then @VAL1 else @VAL end ));

关于sql - 将空 varchar 转换为数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20288256/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com