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

查询字段内的字符串长度!在线等。急
我有这样的一个表

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))<>20
or
select 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 行受影响)

------解决方案--------------------
探讨
引用:

SQL code
select number from cc where len(rtrim(number))<>20
or
select number from cc where len(cast(number as varchar(20)))<>20


二楼大哥 您的 len(rtrim(number))<>20
len(cast(n……

------解决方案--------------------
在sql2005+测试,len函数是不管数据类型都返回正确的,不会出现楼主说的情况

SQL code
create table #a(
x char(20)
)
insert #a select '1'

select len(x) from #a
--结果
1