【发布时间】:2020-12-18 20:45:08
【问题描述】:
数据库:SQL Server 2008
我有这个 SQL 查询:
DECLARE @var FLOAT;
SET @var = (SELECT field FROM table);
-- SELECT @var returns [NULL]
SELECT COALESCE(@var, 'NI');
[NULL] 是@var 变量的中间结果。我希望 COALESCE 返回“NI”,但是我收到以下错误消息:
SQL 错误[8114][S0005]:将数据类型 varchar 转换为浮点数时出错。
我做错了什么?
【问题讨论】:
-
这适用于哪个 RDBMS?请添加一个标签以指定您使用的是
mysql、postgresql、sql-server、oracle还是db2- 或者完全是其他东西。 -
@marc_s 根据错误信息,这看起来像sql-server
-
@Mureinik:看起来 - 同意 - 但如果 OP 真的告诉我们会更好
-
@marc_s 当然,这里没有争论
-
同样,official docs 应该始终是您尝试找出函数为何如此行事的第一个调用端口。
标签: sql sql-server tsql