まず第一に、これは私が取り組んでいるテーブルの簡略化されたバージョンです:
╔═══════╦═══════════╦══════════╦═══════════╗
║ ID ║ FIRSTNAME ║ LASTNAME ║ COMPANYID ║
╠═══════╬═══════════╬══════════╬═══════════╣
║ 12345 ║ Bob ║ Smith ║ 3 ║
║ 13826 ║ Bob ║ Smith.Mr ║ 3 ║
║ 16326 ║ Bob ║ Smith Mr ║ 3 ║
║ 16382 ║ Dr.Bob ║ Smith ║ 3 ║
║ 18372 ║ Kim ║ Johnson ║ 3 ║
╚═══════╩═══════════╩══════════╩═══════════╝
ID 12345 だけを指定すると、12345 から取得した名前と彼の companyID に基づいてすべてのレコードを取得できるはずなので、基本的には Company 3 の Bob Smith からすべてを取得できます。
このクエリへのアプローチ方法がわかりません。彼の姓名からタイトル、スペース、またはドットを削除する方法が必要です。名と姓を連結し、関数を実行して必要なものを削除すると仮定しています。
Mr、Dr、Jr、Srなど...
そして、ボブスミスで終わります。ID 12345 に関連付けられた名前にこれを行う必要がありますが、WHERE
句内でも同様ですよね? これは、名前を比較するためのものです。
このクエリをできるだけ迅速かつ効率的にしようとしていますが、 sub を使用する必要がありSELECT
ますか? を作成する必要がありFUNCTION
ますか? でそれを行う方法がわからない.net
。
どんなアイデアでも大歓迎です。
編集: クライアントは、Bob Smith.Mr の ID 13826 を送信する可能性があることにも言及する必要がありましたが、これからも Bob Smith ID 12345 を取得する必要があるため、タイトルなどを確実に削除する必要があると思います。 ...