我需要找到所有特殊字符在SQL Server 2008
的列中出现的位置,所以,我不关心A, B, C ... 8, 9, 0
,但我关心!, @, &,
,等等。
在我看来,最简单的方法是排除A, B, C, ... 8, 9, 0
,但是如果我编写一个语句来排除它们,我将错过包含!
和A
的条目,因此,在我看来,我必须获得每个非字母/非数字字符的列表,然后运行带有LIKE
和Wildcard
限定符的SELECT
。
下面是我将运行的代码:
SELECT Col1
FROM TABLE
WHERE Col1 LIKE ('!', '@', '#', '$', '%'....)
然而,我不认为你可以运行多个限定符,你能吗?有什么方法可以实现这一点?
4条答案
按热度按时间o2g1uqev1#
消极是你的朋友:
也就是说,您需要
Col1
由任意数量的字符组成的任意行,然后是集合a-Z 0 -9中的一个字符 not,然后是任意数量的字符。如果您有区分大小写的排序规则,那么使用包含大小写的范围
A
、a
、Z
和z
是很重要的,这是我给出的(最初我弄错了,a
在A
之前,Z
在z
之后)或者,换句话说,您可以将原始的
WHERE
编写为:但是,正如您所观察到的,您需要知道要包含在
[]
中的 * 所有 * 字符。u0sqgete2#
以下transact SQL脚本适用于所有语言(国际)。解决方案不是检查字母数字,而是检查是否不包含特殊字符。
bvuwiixz3#
这将为您提供包含任何特殊字符的所有行。
gc0ot86w4#