従業員情報を含むデータベースの保守が不十分です。人事部は、保険補償範囲に関連付けられた従業員の名前が保険証券の名前と一致しない事例をリストするレポートを要求しました。
両方の表の名前の形式に矛盾があります。常に姓の後に名が続きますが、Steven J. Smith という架空の従業員について、いずれかの表に次のいずれかが表示される場合があります。
- スミス、スティーブン
- スミス、スティーブン
- スミス、スティーブン J.
- スミス、スティーブン J.
EMPLOYEE.EMP_NAME <> INSURANCE.SUBSCRIBER_NAME のインスタンスを探すクエリを実行する必要がありますが、上記のように名前の形式の違いを考慮します (つまり、"Smith,Steven J." と "Smith, Steven" は (おそらく)同じ人であり、それらを無視しています)。
SELECT
EMPLOYEE.EMP_NO
, EMPLOYEE.EMP_NAME
, INSURANCE.SUBSCRIBER_NAME
, INSURANCE.PAYOR_NAME
FROM EMPLOYEE
INNER JOIN INSURANCE ON EMPLOYEE.EMP_NO = INSURANCE.EMP_NO
WHERE EMPLOYEE.EMP_NAME <> INSURANCE.SUBSCRIBER_NAME
中間のイニシャルを無視する部分文字列を作成したいのはわかっていますが、カンマの後にスペースがあるかどうかを無視するにはどうすればよいでしょうか?