在 sql 过程中返回空或空



使用不接受空但南的脚本,我试图在 SQL 服务器表中插入空值而不是 0。因此,为此,我有一个想法,即创建将 Nan 转换为空浮点数的存储过程。这是存储过程:

create procedure [dbo].fromNanToNull(@val VARCHAR)
AS BEGIN
DECLARE @Work float
if @val like 'N%'    set @Work=CAST(NULL AS float)
else set @work=CAST(@val AS float)
return @work
END

执行:

exec  [dbo].fromNanToNull 'Nan'

但我没有得到 null 作为回报,我收到了这条消息,它告诉返回被强制为 0。这是消息:

"fromNanToNull"过程试图返回 NULL 的状态, 这是不允许的。将改为返回状态 0。

根据我的理解@val以 n 开头意味着您正在@work值转换为浮点数,但即使@work也只是浮点数据类型 如果@val以 n 开头,则表示您应该显示@work值 否则表格值请解释清楚

CREATE PROCEDURE [DBO].FROMNANTONULL(@VAL VARCHAR)
AS BEGIN
DECLARE @VAL VARCHAR(10)
DECLARE @WORK FLOAT
IF (@VAL LIKE 'N%') 
BEGIN 
SET @WORK=CAST(NULL AS FLOAT)
END 
ELSE 
BEGIN 
SET @WORK=CAST(@VAL AS FLOAT)
END
END

相关内容

  • 没有找到相关文章

最新更新