我有这样的一个表
a表
字段n (char20)
我里面存放的全是20位数字。。
但是我想检查 有没有 不是20位数字的。
select number from cc where len(number)<>20
比如这样。。。
但是问题:我这个表里面假设有 19位的数字+一个空格 我怎样才能查处这样的 19位数字呀
------解决方案--------------------
select number from cc where len(ltrim(rtrim(number)))<>20
------解决方案--------------------
- SQL code
select number from cc where len(rtrim(number))<>20orselect number from cc where len(cast(number as varchar(20)))<>20
------解决方案--------------------
- SQL code
declare @str nvarchar(1000)set @str = '12345678901234567089'select (case when len(@str)=20 and patindex('%[^0-9]%',@str)>0 then '有非数字字符存在' else '符合条件' end)/****************----------------符合条件(1 行受影响)
------解决方案--------------------
------解决方案--------------------
在sql2005+测试,len函数是不管数据类型都返回正确的,不会出现楼主说的情况
- SQL code
create table #a(x char(20))insert #a select '1'select len(x) from #a--结果1