2016-07-28 97 views
0

这是有关SQL Server 2014的问题。我有一个表xxx。有一个varchar类型的列col1。此列中的值可以包含字母数字字符,如1A324G。还可以有特殊字符以及字母数字,如!2A93C#AC934D等。在SQL Server中筛选特殊字符

对于此列可以有任何特殊字符(例如:!$#^().-_)。我想提取只有字母数字值的数据,而不是任何特殊字符。我试图在通配符搜索模式下使用LIKE子句,但我无法清除仅包含字母数字值的子句。

有人可以帮助我,让我知道我该怎么做吗?

+0

请发布您在问题中尝试过的代码示例。它会帮助你清理你的思想,并指引我不去的地方。 –

+0

嗨,例如假设我有col1列中的2个值:1GHD5343HS3435368和!GE9343DGE5934435。我想在结果中只提取1GHD5343HS3435368。我尝试了像select * from xxx where col1 like'%[0-9] [A-Z] [^!]%',但它似乎不起作用。我不知道如何在LIKE子句中使用通配符模式搜索。而不是! col1值可能有$。可以组合特殊字符和字母数字。你可以让我知道我如何只筛选select语句中的字母数字值。或者我应该为此写一个存储过程。 – user3807741

回答

-1

自从我玩过sql以来已经有一段时间了,但是应该这样做。

SELECT * FROM xxx WHERE col1 NOT LIKE'%!%'OR'%$%';

+0

这并不排除所有具有非alpha值的字段。 – zyamys

+0

我想是这样的下方,它似乎工作: '%!%' 从xxx 其中COL1像 或COL1 LIKE '%@%' 或COL1 LIKE '%#%' 或COL1选择不同COL1如'%$%' 或col1类似'%&%' 或col1类似'%*%' 或col1 like'%'%' 或col1 like'%''''''' 或col1 like'%? %' 或col1 like'%。%' 或col1 like'% - %' 或col1 like'%+%' – user3807741