查询无法在SQL Server中工作

时间:2017-07-12 13:34:49

标签: sql sql-server

我有桌子' A'用列' col'值:

a.b.1.c

a.b.2.c

a.b.26.d

如果我执行此选择它有效:

SELECT
*
FROM
A
WHERE col LIKE 'a.b.[2-9]%';

如果我执行这个,它确实是

SELECT
*
FROM
A
WHERE col LIKE 'a.b.[2-9][0-9]*%';

查询的预期结果应为:

a.b.2.c

a.b.26.d

所以,我需要" *"是可选的第二个数字

为什么会这样?我怎样才能使数字大于9?

以下是fiddle1 fiddle2

4 个答案:

答案 0 :(得分:3)

  • 不需要。试试这个;

    select * from a
    WHERE col LIKE 'a.b.[2-9][0-9]%' or col like 'a.b.[2-9]%'
    

答案 1 :(得分:2)

尝试不使用*并使用or运算符

SELECT
*
FROM
A
WHERE col LIKE 'a.b.[2-9]%' or col LIKE 'a.b.[2-9][0-9]%';

答案 2 :(得分:1)

试试这个(没有*):

SELECT
*
FROM
A
WHERE col LIKE 'a.b.[2-9][0-9]%';

答案 3 :(得分:1)

SELECT * FROM A WHERE col LIKE 'a.b.[2-9][0*-9]%';