【问题标题】:SQL "excluding" Alphanumeric condition not workingSQL“排除”字母数字条件不起作用
【发布时间】:2019-10-05 01:53:10
【问题描述】:

我知道有很多论坛讨论,但我认为我的情况很独特,我正在尝试查找所有没有字母数字值的地址1字段,我只是用基本的sql查询(数据库是Sybase),如下所示

select  address1 from address_table where address1 like '%[^a-zA-Z0-9]%'

我的结果集包含字母数字值,

~~~~~~~~~~~~
1304 LOVERS LN
1304 LOWE AVE
1304 LYNCHBURG ST #1
1304 LYNCHBURG ST #1
1304 LYNNWOOD DR
~~~~~~~~~~~~

我不确定我错过了什么

【问题讨论】:

  • 您对如何应用该模式的理解存在缺陷;您的匹配项可能来自空格和# 字符。

标签: sql sybase


【解决方案1】:

如果我正确理解您的问题,您的模式将需要更多的特异性来匹配 address1 在字符串中任何位置包含no字母数字字符的记录。

利用贪婪的重复修饰符* 来检查字符串中的每个字符是否符合模式。

select address1 from address_table where address1 like '%[^a-zA-Z0-9]*%'

【讨论】:

  • 是的,谢谢它正是我想要的。感谢您的快速回复。
【解决方案2】:

您正在匹配至少包含一个非字母数字字符的任何内容。 你想要一个否定的:

select  address1 from address_table where address1 not like '%[a-zA-Z0-9]%'

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-07-12
    • 2021-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多