0

データ セットに名前フィールドがあります。Oracle PL SQL を使用して、敬称を含むレコードを検索するにはどうすればよいですか?

別の表で検索したい敬称のリストがあります。どんな助けでも本当に感謝しています。

ありがとう。

4

2 に答える 2

1

REGEXP_LIKE敬称テーブルに対してクロス結合を使用して実行します。

このクエリは、敬称と敬称を持つすべての名前を一覧表示します。名前に複数の敬称がある場合は、一致ごとにリストされます。

SELECT
  myTable.Name,
  honorifics.Title
FROM myTable
CROSS JOIN honorifics
WHERE REGEXP_LIKE(myTable.Name, ''(\W|^)' || honorifics.Title || '(\W|$)')

正規表現は、敬称が文字列の先頭にある、「単語以外の」文字が前にあるかどうか、および文字列の最後にある、単語以外の文字が後にあるかどうかを確認します。

この検索で​​は大文字と小文字が区別されることに注意してください。大文字と小文字を区別しないようにするには、 に の 3 番目の引数を追加し'i'ますREGEXP_LIKE

WHERE REGEXP_LIKE(myTable.Name, ''(\W|^)' || honorifics.Title || '(\W|$)', 'i')
                                                                         ^^^^^
于 2013-06-12T17:23:26.353 に答える
0
SELECT names.lastName
FROM names
INNER JOIN honorophics ON names.lastName LIKE honorophics.listOfHonorophics + '%'

これにより、2 つのテーブルが結合され、行が作成されます。ここで、lastName にはテーブルからの敬称を含むパターンが含まれています。

于 2013-06-12T17:16:02.557 に答える