在哪里检查NVARCHAR记录是否以SQL中的数字或符号开头

时间:2013-06-02 15:30:03

标签: sql sql-server

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

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

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

3 个答案:

答案 0 :(得分: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

答案 1 :(得分:2)

使用PATINDEX

SELECT * 
FROM   Music 
WHERE  PATINDEX('[^a-zA-Z]%', Title) = 1
ORDER  BY Title

答案 2 :(得分:0)

可以使用PATINDEX函数和LEFT函数组合:

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

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