我有一个奇怪的问题。
在我的查询中,我选择5列,其中两列是nvarchar
形式的数字(仅包含数字和精度点),其他三列是uniqueIdentifier
和nvarchar
。
我想在select语句中将这两列转换为Float
但是我收到错误
无法将nvarchar转换为float。
我多次检查了所有这些值的格式。相信我,他们没事。
但是,当我只选择这两列并将它们转换为float时,查询会成功运行。
我感谢您对此主题的任何帮助。
我也可以在这里粘贴查询。但整个查询超过100行,写入和阅读会令人沮丧!
答案 0 :(得分:3)
在回答之前肯定需要你的更多信息。你可以发布一些代码(或者你的问题的一小部分)吗?也许你的表定义也是如此?
由于所有值都是数值,为什么要将列保留为nvarchar?
最后,您的任何数据是否包含美元符号($)?
这有效:
DECLARE @Text nvarchar(100)
SET @Text = '1234.567'
SELECT CONVERT(float, @Text) AS ColumnValue
这样做:
DECLARE @Text nvarchar(100)
SET @Text = ' 1234.567 '
SELECT CONVERT(float, @Text) AS ColumnValue
但这不是:
DECLARE @Text nvarchar(100)
SET @Text = '$1234.567'
SELECT CONVERT(float, @Text) AS ColumnValue
答案 1 :(得分:0)
不确定没有看到您的查询,但我认为这应该有效:
SELECT CONVERT(Float(2), LTRIM(RTRIM(<nVarchar Column>))) AS Amount FROM ......