我正在使用SQL Server 2005.
我只需找出"Body"列中有特殊字符的那些行.在以下场景中,结果应该只是TemplateID = 2的行.我们如何为此编写查询?
CREATE TABLE #Template (TemplateID INT, Body VARCHAR(100))
INSERT INTO #Template (TemplateID,Body) VALUES (1,'abcd 1234')
INSERT INTO #Template (TemplateID,Body) VALUES (2,'#^!@')
Run Code Online (Sandbox Code Playgroud)
除以下之外的任何内容都是此方案的特殊字符
1) Alphabtes
2) Digits
3) Space
Run Code Online (Sandbox Code Playgroud)
Tom*_*m H 30
SELECT
TemplateID,
Body
FROM
#Template
WHERE
Body LIKE '%[^0-9a-zA-Z ]%'
Run Code Online (Sandbox Code Playgroud)
括号之间的东西表示数字(0-9),小写字母alpha(az),大写字母alpha(AZ)和空格."^"使其成为"NOT"中的一个.请注意,这与NOT LIKE'%[0-9a-zA-Z]%'不同
| 归档时间: |
|
| 查看次数: |
70733 次 |
| 最近记录: |