我正在尝试提取仅在特定列中包含数字的行,但数字应该只是6位数或12位数。 我在尝试:
select * from table where column like '[0-9][0-9][0-9][0-9][0-9][0-9]'
它有效,但对我来说似乎有点不洁净。 请看看是否有人能提供更好的解决方案。
非常感谢!
答案 0 :(得分:1)
这个怎么样?
where len(column) in (6, 12) and
column not like '%[^0-9]%'
第一个条件检查长度是6或12.第二个条件检查所有字符是否为数字。
我应该注意到这几乎一样清楚:
where column like '[0-9][0-9][0-9][0-9][0-9][0-9]' or
column like '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'
答案 1 :(得分:0)
这个怎么样?
DECLARE @Table TABLE
(
number bigint
)
INSERT INTO @Table
( number )
VALUES ( 3456157 ), (251236), (785412), (251236475821), (36546)
--Select All rows
SELECT *
FROM @Table
--Just the ones we want
SELECT *
FROM @Table
WHERE
LEN(number) IN (6, 12)
AND
number LIKE '%[0-9]%'