日期:2014-05-18  浏览次数:20562 次

如何查询字符类型字段中带有小数点的数值的记录
有一张表 某字段 是nvarchar的,里面存了浮点型数字,有一位小数也有两位小数。

请问如何分别查询出带有一位小数点的所有记录和带有两位小数点的所有记录?

select * from 表
where 列名 like '%.%'

这样查可以查出带有一位小数点的所有记录。

select * from 表
where 列名 like '%.%'

这样查却查出包括带有一位小数点的所有记录。

问题:如何分别在表中找出小数点位数大于1位,2位,3位的记录?

------解决方案--------------------
错了,应该是:
SQL code


--一位
select * from tbl where 
len(right(字段名字,len(字段名字)-charindex('.',字段名字)))=1
--二位
select * from tbl where 
len(right(字段名字,len(字段名字)-charindex('.',字段名字)))=2
--三位
select * from tbl where 
len(right(字段名字,len(字段名字)-charindex('.',字段名字)))=3

------解决方案--------------------
探讨

SQL code
select * from 表
where charindex('.',replace(列名))>3

------解决方案--------------------
SQL code

-- 一位
SELECT * FROM 表名 WHERE 列名 LIKE '%._'

-- 两位
SELECT * FROM 表名 WHERE 列名 LIKE '%.__'

------解决方案--------------------
SQL code

SELECT * FROM table1 WHERE CHARINDEX('.',REVERSE(列名)) - 1 = 1 --1位
SELECT * FROM table1 WHERE CHARINDEX('.',REVERSE(列名)) - 1 = 2 --2位
SELECT * FROM table1 WHERE CHARINDEX('.',REVERSE(列名)) - 1 = 3 --3位