Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 如何在SQL server中将varchar转换为float?_Sql Server_Sql Server 2008 R2 - Fatal编程技术网

Sql server 如何在SQL server中将varchar转换为float?

Sql server 如何在SQL server中将varchar转换为float?,sql-server,sql-server-2008-r2,Sql Server,Sql Server 2008 R2,第1列是varchar,第2列是float。 我想将第1列的内容复制到第2列,以用于所有看起来第1列有数字的实例 这是我的密码: UPDATE [TestDB].[dbo].data SET [COLUMN 2]=CAST( [Column 1] AS FLOAT) WHERE ISNUMERIC ([COLUMN 1]) = 1 我正在使用SQLServer2008R2。这段代码行得通吗?试着这样做 UPDATE [TestDB].[dbo].data SET [COLUMN 2]=Case

第1列是varchar,第2列是float。 我想将第1列的内容复制到第2列,以用于所有看起来第1列有数字的实例

这是我的密码:

UPDATE [TestDB].[dbo].data
SET [COLUMN 2]=CAST( [Column 1] AS FLOAT)
WHERE ISNUMERIC ([COLUMN 1]) = 1
我正在使用SQLServer2008R2。这段代码行得通吗?

试着这样做

UPDATE [TestDB].[dbo].data
SET [COLUMN 2]=Case When IsNumeric([Column 1]) = 1 Then CAST( [Column 1] AS FLOAT) End
case when isnumeric([Column 1])=1 
         then cast([Column 1] AS FLOAT)
         else 0
end
ISNUMERIC(表达式)确定表达式是否有效 数字类型


请看这里

失败的价值是什么?汤姆,我不同意。我正在寻找它可能出现的情况…我添加了ISNUMERIC..@phan它不一定会工作。试试这个:
SELECT ISNUMERIC('-')
,现在试试
SELECT CAST('-'AS FLOAT)
我见过类似的情况,在where子句之前执行CAST,这样会出错。G Mastros,谢谢,我刚刚添加了ISNUMERIC行,你比我快了一步。