0

尝试运行从我的数据库中读取 * 的 SQL 命令,但我需要它在电子邮件字段中查找特定文本,如果不相等则返回 null。例如,我试图过滤掉我们数据库中所有不是内部电子邮件地址的电子邮件,因此它需要过滤掉任何没有我们公司名称的电子邮件。

我可以使用 LIKE 命令对其进行过滤,但它只是简单地忽略了结果中的其余字段。我知道访问有 IIf(InStr 命令,所以我希望 SQL 中有类似的东西

4

2 回答 2

1

不确定我是否完全理解,但这样的事情可能对你有用。

USE Server 
SELECT 
  firstName AS EmployeeFirstname
, lastName AS EmployeeLastname
, title AS EmployeeTitle
, id AS EmployeeID
, 
  Case 
  When emailAddress Like '%@mycompany.com' 
      Then  emailAddress
  Else Null
  End AS EmployeeEmailAddress 
FROM db.Information 
WHERE ISNUMERIC(id)<> 0 
  AND empStatus = 'A'

因此,无论他们拥有什么电子邮件,这都会为您提供行(仍然考虑您对 ISNUMERIC(id)<> 0 AND empStatus = 'A' 的其他选择)。但是在这些行中,如果电子邮件是您的公司,它们将显示,如果不是,则该字段将为 Null。显然将“mycompany.com”更改为您实际需要搜索的任何字符串,

于 2013-10-22T16:29:54.447 回答
0

如果要排除公司不在电子邮件地址中的所有记录,请添加

 where 
       emailAddress not like '%companyname%'

如果要清除非公司电子邮件地址,可以使用case

Select
     case when emailaddress not like '%company%' then null else emailaddress end 
于 2013-10-22T16:29:12.433 回答