Reg*_*ser 2 sql sql-server sql-server-2008
我列有数据
CLARK
KING
MILLER
SMITH, $800 .00
JONES, $2975.00
SCOTT, $3000.00
ADAMS, $1100.00
FORD, $3000.00
ALLEN30
WARD30
MARTIN30
BLAKE30
TURNER30
JAMES30
Run Code Online (Sandbox Code Playgroud)
我只想要字母数字行
SMITH, $800 .00
JONES, $2975.00
SCOTT, $3000.00
ADAMS, $1100.00
FORD, $3000.00
Run Code Online (Sandbox Code Playgroud)
除了这行,所有行都应包括在内?
我怎么能得到这个?
你可以使用PATINDEX
:
DECLARE @test table(col varchar(30));
INSERT INTO @test
SELECT * FROM (SELECT 'CLARK' UNION ALL SELECT 'KING' UNION ALL SELECT 'MILLER' UNION ALL SELECT 'SMITH, $800 .00' UNION ALL SELECT 'JONES, $2975.00' UNION ALL SELECT 'SCOTT, $3000.00' UNION ALL SELECT 'ADAMS, $1100.00' UNION ALL SELECT 'FORD, $3000.00' UNION ALL SELECT 'ALLEN30' UNION ALL SELECT 'WARD30' UNION ALL SELECT 'MARTIN30' UNION ALL SELECT 'BLAKE30' UNION ALL SELECT 'TURNER30' UNION ALL SELECT 'JAMES30')AS T(Spalte)
Run Code Online (Sandbox Code Playgroud)
Patindex
返回指定表达式中第一次出现模式的起始位置.由于我使用的模式与任何非字母数字(^通配符 - 字符)匹配,因此仅返回仅包含字母数字字符(+空格)的记录:
SELECT col
FROM @test
WHERE PATINDEX('%[^a-zA-Z0-9 ]%',col) = 0
Run Code Online (Sandbox Code Playgroud)
结果:
CLARK
KING
MILLER
ALLEN30
WARD30
MARTIN30
BLAKE30
TURNER30
JAMES30
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
12043 次 |
最近记录: |