[SQL SERVER ]查询 某个字段为float类型 ,并且大于某个数值的记录

yuna@liu 2010-09-28 10:58:09

------
create table cm
(
.......
[售价] varchar(50),
........
)-----

--
select * from cm where cast([售价] as flaot)>1000

这个查询语句通常报错
有的记录中,[售价]字段含有“-”,“*”等字符,现在想找出其中是float类型,别且大于1000的记录

...全文
419 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuna@liu 2010-09-28
  • 打赏
  • 举报
回复
hehe 谢谢大家
lcqtgb 2010-09-28
  • 打赏
  • 举报
回复
很明显。。你的价格中肯定有几条数据中有-或*之类的,,所以他们上二楼加个isnumeric判断是否是数字。。
「已注销」 2010-09-28
  • 打赏
  • 举报
回复
[Quote=引用楼主 liuxiulian 的回复:]
SQL code

------
create table cm
(
.......
[售价] varchar(50),
........
)-----

--
select * from cm where cast([售价] as flaot)>1000


这个查询语句通常报错
有的记录中,[售价]字段含有“-”,“*”等字符,现在想找出其中是float类型,别且大于1000的记录
……
[/Quote]
产生错误的原因是:[售价] 中含有其他字符,造成类型转换出错。
看看哪些列中有其他字符:
select * from cm
where charindex('-',[售价])>0
or charindex('*',[售价])>0
fpzgm 2010-09-28
  • 打赏
  • 举报
回复
select * from cm where isnumeric(售价)=1 and cast([售价] as float)>1000
喜-喜 2010-09-28
  • 打赏
  • 举报
回复
楼上的都对..
百年树人 2010-09-28
  • 打赏
  • 举报
回复
select * from cm where isnumeric(售价)=1 and cast([售价] as float)>1000
dawugui 2010-09-28
  • 打赏
  • 举报
回复
select * from cm where ISNUMERIC(售价) = 1 and cast([售价] as flaot)>1000

34,594

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧