尝试运行从我的数据库中读取*的SQL命令,但我需要它在电子邮件字段中查找特定文本,如果不相等则返回null。例如,我正在尝试过滤掉数据库中不是内部电子邮件地址的所有电子邮件,因此需要过滤掉任何没有公司名称的电子邮件。
我能够使用LIKE命令对其进行过滤,但它只是忽略了结果中的其余字段。我知道访问有IIf(InStr命令,所以我希望在SQL中有类似的东西
答案 0 :(得分: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)&lt;&gt; 0 AND empStatus ='A')。但是在那些行中,如果电子邮件是你的公司,他们会显示,如果不是,那么该字段将是Null。显然将“mycompany.com”改为喜欢你想要搜索的任何字符串,
答案 1 :(得分:0)
如果要排除公司不在电子邮件地址中的所有记录,请添加
where
emailAddress not like '%companyname%'
如果您想删除非公司电子邮件地址,可以使用case
Select
case when emailaddress not like '%company%' then null else emailaddress end