Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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 将表从nvarchar更改为包含值的浮点_Sql Server_Sql Server 2008 - Fatal编程技术网

Sql server 将表从nvarchar更改为包含值的浮点

Sql server 将表从nvarchar更改为包含值的浮点,sql-server,sql-server-2008,Sql Server,Sql Server 2008,嗨,当我的表包含值时,我想将我的表从nvarchar改为float 我正在尝试以下代码: alter table MY_TABLE alter column PRICE float 但我得到错误消息8114,16级,状态5,第1行错误转换 要浮动的数据类型nvarchar 您有一个问题,因为某些值无法转换为浮点值 因此,首先去掉该值: update my_table set price = try_convert(float, price); 然后转换将起作用: alter tabl

嗨,当我的表包含值时,我想将我的表从nvarchar改为float

我正在尝试以下代码:

alter table MY_TABLE alter column PRICE float
但我得到错误消息8114,16级,状态5,第1行错误转换 要浮动的数据类型nvarchar


您有一个问题,因为某些值无法转换为浮点值

因此,首先去掉该值:

update my_table
    set price = try_convert(float, price);
然后转换将起作用:

alter table MY_TABLE alter column PRICE float;
我应该注意:
float
对于“price”列来说是一种错误的数据类型。它实际上应该是数字或货币类型

在SQL Server 2008中,请改用
isnumeric()

update my_table
    set price = NULL
    where isnumeric(price) = 0

您有一个问题,因为某些值无法转换为浮点值

因此,首先去掉该值:

update my_table
    set price = try_convert(float, price);
然后转换将起作用:

alter table MY_TABLE alter column PRICE float;
我应该注意:
float
对于“price”列来说是一种错误的数据类型。它实际上应该是数字或货币类型

在SQL Server 2008中,请改用
isnumeric()

update my_table
    set price = NULL
    where isnumeric(price) = 0

查看无法转换的数据

Select * from MY_TABLE where IsNumeric(PRICE)=0
如果此数据可以销毁或没有价值,则在必要时进行编辑

Update MY_TABLE Set PRICE = null where IsNumeric(PRICE)=0
Alter table MY_TABLE alter column PRICE float

查看无法转换的数据

Select * from MY_TABLE where IsNumeric(PRICE)=0
如果此数据可以销毁或没有价值,则在必要时进行编辑

Update MY_TABLE Set PRICE = null where IsNumeric(PRICE)=0
Alter table MY_TABLE alter column PRICE float

首先
更新
不良记录

Update MY_TABLE set PRICE = Replace(Replace(Price,',','.'),' ','')
然后运行
alter

alter table MY_TABLE alter column PRICE float;
插入新表

Insert into table_name (Price,col1,..)
Select Replace(Replace(Price,',','.'),' ',''),col1,col2,..
From MY_TABLE 

FLOAT
是一种近似数据类型,它不会存储准确的值

首先
更新
坏记录

Update MY_TABLE set PRICE = Replace(Replace(Price,',','.'),' ','')
然后运行
alter

alter table MY_TABLE alter column PRICE float;
插入新表

Insert into table_name (Price,col1,..)
Select Replace(Replace(Price,',','.'),' ',''),col1,col2,..
From MY_TABLE 

FLOAT
是一种近似的数据类型,不会存储精确的值

不是很明显。错误消息非常清楚删除所有
varchar
数据,然后运行
ALTER
语句,但我不想删除它们我想将所有值更改为动态浮动这是怎么可能的?您将如何将
'ABC'
转换为
float
不是很明显。错误消息非常清楚删除所有
varchar
数据,然后运行
ALTER
语句,但我不想删除它们我想将所有值更改为动态float这是怎么可能的?您将如何将
'ABC'
转换为
float
我可以避免更新然后更改表吗?当我在select*from中使用insert to时。。将逗号替换为点。我可以避免更新然后更改表吗?当我在select*from中使用insert to时。。将逗号替换为点。