4

我正在使用 SQL 语句来获取名称以某些字母开头的记录

SELECT * FROM Music WHERE Title LIKE 'A%' ORDER BY Title

任何人都可以建议将获取以数字和符号开头的标题的 SQL 查询吗?

4

3 回答 3

6

您可以将 LIKE 与字符集一起使用:

SELECT * FROM Music WHERE Title LIKE '[^A-Za-z]%' ORDER BY Title

样本:

declare @music table(id int identity(1,1) not null primary key, title varchar(10))
insert @music(title)
values
    ('test1'), 
    ('9test'), 
    ('0test'), 
    ('#test')

SELECT * FROM @Music WHERE Title LIKE '[^A-Za-z]%' ORDER BY Title 

- - 结果 - -

id  title
4   #test
3   0test
2   9test
于 2013-06-02T15:44:51.303 回答
2

利用PATINDEX

SELECT * 
FROM   Music 
WHERE  PATINDEX('[^a-zA-Z]%', Title) = 1
ORDER  BY Title
于 2013-06-02T15:37:02.400 回答
0

可以结合 PATINDEX 函数和 LEFT 函数来做到这一点:

SELECT *
FROM Music
WHERE PATINDEX('%[A-Z ,a-z]%',LEFT(Title,1)) = 0

编辑:由于您在开始时搜索非字母字符,更改为 = 0, = 1 将返回任何以字母字符开头的字符。

于 2013-06-02T15:37:37.610 回答