0

データベースから * を読み取る SQL コマンドを実行しようとしていますが、電子メール フィールドで特定のテキストを検索し、等しくない場合は null を返す必要があります。たとえば、データベース内の内部電子メール アドレスではないすべての電子メールを除外しようとしているため、会社名が含まれていない電子メールを除外する必要があります。

これを LIKE コマンドでフィルタリングすることはできましたが、結果の残りのフィールドを無視するだけです。access には 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 に答える