34,836
社区成员




支持子陌大哥
select * from 表 where isnumberic(字段1)=1
select * from [Table] where patindex('%[^0-9]%',a)=0
DECLARE @t TABLE(v VARCHAR(6))
INSERT @t SELECT '445544'
UNION ALL SELECT '228787'
UNION ALL SELECT '78xx54'
UNION ALL SELECT '87788d'
UNION ALL SELECT '1e2222'
SELECT v FROM @t a
INNER JOIN (SELECT 1 id UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6) b
ON CHARINDEX(SUBSTRING(v,id,1),'0123456789')>0
GROUP BY v
HAVING COUNT(id)=6
CREATE TABLE t(v VARCHAR(6))
INSERT t SELECT '445544'
UNION ALL SELECT '228787'
UNION ALL SELECT '78xx54'
UNION ALL SELECT '87788d'
UNION ALL SELECT '1e2222'
DECLARE @L INT,@i INT
DECLARE @sql VARCHAR(8000)
SELECT @L=LEN(v),@i=0,@sql='' FROM t
SET ROWCOUNT @L
SELECT @i=@i+1,@sql=@sql + ' UNION SELECT ' + RTRIM(@i) FROM sysobjects
SET @sql='SELECT v FROM t a
INNER JOIN (' + STUFF(@sql,1,14,' SELECT id=') + ') b ON CHARINDEX(SUBSTRING(v,id,1),''0123456789'')>0 GROUP BY v HAVING COUNT(id)=' + RTRIM(@L)
EXEC (@sql)
DROP TABLE t
WHERE 字段1 LIKE '[1-9][0-9][0-9][0-9][0-9][0-9][0-9]'
[code=SQL]
--ISNUMERIC ( expression )
--备注
--如果输入表达式的计算值为有效的整数、浮点数、money 或 decimal 类型时,ISNUMERIC 返回 1;否则返回 0。返回值为 1 时,指示可将 expression 至少转换为上述数值类型中的一种。
select
isnumeric('1e-2'),
isnumeric('1e+2'),
isnumeric('1e2'),
isnumeric('1.1'),
isnumeric('-1.1'),
isnumeric('+1.1'),
isnumeric('$12'),
isnumeric('¥12')
--在单纯判断字段是否只含有数字的情况下用这个函数,可能会有以上情况干扰
--ISNUMERIC ( expression )
--备注
--如果输入表达式的计算值为有效的整数、浮点数、money 或 decimal 类型时,ISNUMERIC 返回 1;否则返回 0。返回值为 1 时,指示可将 expression 至少转换为上述数值类型中的一种。
select
isnumeric('1e-2'),
isnumeric('1e+2'),
isnumeric('1e2'),
isnumeric('1.1'),
isnumeric('-1.1'),
isnumeric('+1.1'),
isnumeric('$12'),
isnumeric('¥12')
--在单纯判断字段是否只含有数字的情况下用这个函数,可能会有以上情况干扰