查询字段内的字符串长度!在线等。急
我有这样的一个表
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 行受影响)
------解决方案--------------------
------解决方案--------------------
在sql2005+测试,len函数是不管数据类型都返回正确的,不会出现楼主说的情况
SQL code
create table #a(
x char(20)
)
insert #a select '1'
select len(x) from #a
--结果
1