2014-10-09 70 views
-1

表格的以下字段:SQL省略值,如果匹配

AttorneyEmail(varchar(150), null) 

可以有多个电子邮件地址,但在所有的“[email protected]”这个电子邮件地址。

我有Where子句中的以下在结果未包括:

and aa.AttorneyEmail NOT LIKE ('helpdesk%') 

但它仍然没有。

任何帮助,将不胜感激。

Regards,

+4

单个字段中的多个地址(yuk!)? - '和aa.AttorneyEmail不喜欢('%helpdesk%')'? – 2014-10-09 15:18:11

+0

'VARCHAR(150)'可能不足以支持单个电子邮件地址([最大长度为254个字符](http://stackoverflow.com/q/386294/1048425)),更不用说多个电子邮件地址!作为@AlexK。已经表示,单个领域的多个电子邮件地址不是一个好主意 - 您可能希望阅读“一对多关系”。 – GarethD 2014-10-09 15:31:13

+0

将多个值存储在单个元组中违反了1NF。规范化您的数据,您的生活将变得更加轻松。如果你有很好的ddl,那么dml非常简单。 – 2014-10-09 15:35:09

回答

0

你说的没什么意义。如果每行在其AttorneyEmail值中包含帮助台地址(如您所说),那么您正试图使用​​的WHERE谓词(拼写为@AlexK演示)将排除所有行。 (此外,这样的数据库结构相当丑陋。)

在这种情况下,如果要从结果中的列值中剥离帮助台地址,那么您需要在选择列表中执行此操作

SELECT REPLACE(aa.AttorneyEmail, '[email protected]', '') AS AttorneyEmail, 
... 

您可能需要调整以删除多余的分隔符;我无法确切地说出这是因为我不知道你是如何构建价值观的。

+0

约翰: 这工作! REPLACE(aa.AttorneyEmail,',ais.helpdesk @ dns.org','')为AttEmail 谢谢 – jr7138 2014-10-10 19:21:23