当前位置: 首页 > 面试题库 >

无法将数据类型nvarchar转换为float时出错

卢朝
2023-03-14
问题内容

我已经搜索了这个很棒的论坛并在Google周围搜索,但无法解决。

我们有两个表(相信我,我与这些表无关)。这两个表都有一个名为的列eventId

然而,在一个表中,数据类型eventId就是float和在另一个表中,这是nvarchar

我们从选择table1这里eventI被定义为float和保存该ID写入table2其中eventId被定义为nvarchar(50)

作为数据类型descrepancy的结果,我们得到错误转换数据类型nvarcharfloat

在不弄乱数据库的情况下,我想强制使用eventId摆脱该错误。

有什么想法我在下面的代码做错了吗?

SELECT 
    CAST(CAST(a.event_id AS NVARCHAR(50)) AS FLOAT) event_id_vre,

问题答案:

该问题最有可能是因为某些行的event_id行为空。有两种方法可以解决此问题:

  • 将您转换floatnvarchar,而不是相反-这种转换将始终成功。唯一的问题是文本表示形式是否不同-例如,带有float-as-的表nvarchar使用较少的十进制数字,或者
  • 在转换之前添加一个条件以检查空ID- 如果某些事件ID是非空字符串,但它们也不是浮点可转换的(例如,字段中有单词而不是数字),则可能无法使用。

第二种解决方案如下所示:

SELECT 
     case when a.eventid <> '' 
            then cast(cast(a.event_id as nvarchar(50)) as float) 
          ELSE 0.0 
     END AS event_id_vre,


 类似资料:
  • 问题内容: 在SO上进行了搜索和搜索,无法弄清楚 尝试将每个字段作为FLOAT进行铸造都无济于事,转换没有给我任何进一步的帮助。 如何获取以下case子句以返回THEN部分中所述的值? 错误:消息8114,级别16,状态5,行1将数据类型varchar转换为float时出错。 我的SQL查询的错误部分: average_days_pay = float terms_code = char 问题答案

  • 问题内容: 我在代码隐藏中收到转换失败的错误。我的代码如下: 我收到以下错误: 将nvarchar值转换为数据类型int时,转换失败。 在这里必须进行哪些更改? 问题答案: 我想这是一个整数,但您正在分配一个字符串。因此,这可能会解决它: 编辑:由于您已评论该会话存储了用户名,但该列是一个int列,因此您有三个选择: 更改会话以存储用户标识而不是名称 更改列以存储用户名 从存储用户名的表中选择用户

  • 我在IIS上成功安装了Laravel。我也成功地用laravel连接了MSSQL数据库。我运行artisan命令< code>php artisan make:auth和< code>php artisan migrate。制作一个登录/注册页面。现在,当我注册一个新用户时,我得到一个错误。: SQLSTATE[22007]:[Microsoft][ODBC驱动程序17 forSQLServer]

  • 问题内容: 我正在尝试使用存储过程基于varchar类型的“名称”列的输入值来返回“项目”表的“ ItemId”列值,但是每当我将任何值传递给存储过程时,它都会向我返回错误: 将数据类型varchar转换为int时出错。 这就是我所说的: 问题答案: 您必须匹配参数:RETURN不会填充OUTPUT参数:您对@itemid的赋值可以做到这一点。 另外,您存储的过程太复杂了。对于从存储的proc返回

  • 本文向大家介绍Java程序将Java Float转换为数值基元数据类型,包括了Java程序将Java Float转换为数值基元数据类型的使用技巧和注意事项,需要的朋友参考一下 让我们首先声明一个Float对象。 现在,让我们将其转换为简短的数字原始数据类型 同样,我们可以使用method将其转换为int 。 以下是将Float转换为其他数字原始数据类型的示例。 示例 输出结果

  • 问题内容: 我目前有一个表,其列为。该列可以容纳数字或文本。在某些查询期间,我将其视为一列(我将其与另一个表中的列进行连接) 只要在该字段中只有数字没有问题,但是即使是一分钟的分钟也有文本,而在此字段中没有数字,我就会收到“将数据类型转换为的错误”。即使在WHERE部分中,我也确保所有文本字段都没有出现。 为了解决这个问题,我创建了一个视图,如下所示: 但是,即使视图仅显示具有数字值的行并将Myc