BPCHARCMP 関数 - Amazon Redshift

BPCHARCMP 関数

2 つの文字列の値を比較し、整数を返します。文字列が同じである場合、関数は 0 を返します。1 番目の文字列がアルファベット順でより大きい場合、関数は 1 を返します。2 番目の文字列がより大きい場合、関数は -1 を返します。

マルチバイトの文字の場合は、バイトエンコーディングを基に比較が行われます。

BTTEXT_PATTERN_CMP 関数 のシノニム。

構文

BPCHARCMP(string1, string2)

引数

string1

CHAR 文字列または VARCHAR 文字列。

string2

CHAR 文字列または VARCHAR 文字列。

戻り型

INTEGER

以下の例では、TICKIT サンプルデータベースの USERS テーブルを使用します。詳細については、「サンプルデータベース」を参照してください。

USERS テーブル内の最初の 10 個のエントリについて、ユーザーの名と姓をアルファベット順で比較し、名が姓よりアルファベット順で先になるかどうかを判別するには、次の例を使用します。FIRSTNAME の文字列が LASTNAME の文字列よりアルファベット順で後になるエントリについては、関数は 1 を返します。LASTNAME が FIRSTNAME よりアルファベット順で後になる場合、関数は -1 を返します。

SELECT userid, firstname, lastname, BPCHARCMP(firstname, lastname) FROM users ORDER BY 1, 2, 3, 4 LIMIT 10; +--------+-----------+-----------+-----------+ | userid | firstname | lastname | bpcharcmp | +--------+-----------+-----------+-----------+ | 1 | Rafael | Taylor | -1 | | 2 | Vladimir | Humphrey | 1 | | 3 | Lars | Ratliff | -1 | | 4 | Barry | Roy | -1 | | 5 | Reagan | Hodge | 1 | | 6 | Victor | Hernandez | 1 | | 7 | Tamekah | Juarez | 1 | | 8 | Colton | Roy | -1 | | 9 | Mufutau | Watkins | -1 | | 10 | Naida | Calderon | 1 | +--------+-----------+-----------+-----------+

この関数が 0 を返す、USERS テーブル内のすべてのエントリを返すには、次の例を使用します。FIRSTNAME と LASTNAME が同じである場合、この関数は 0 を返します。

SELECT userid, firstname, lastname, BPCHARCMP(firstname, lastname) FROM users WHERE BPCHARCMP(firstname, lastname)=0 ORDER BY 1, 2, 3, 4; +--------+-----------+----------+-----------+ | userid | firstname | lastname | bpcharcmp | +--------+-----------+----------+-----------+ | 62 | Chase | Chase | 0 | | 4008 | Whitney | Whitney | 0 | | 12516 | Graham | Graham | 0 | | 13570 | Harper | Harper | 0 | | 16712 | Cooper | Cooper | 0 | | 18359 | Chase | Chase | 0 | | 27530 | Bradley | Bradley | 0 | | 31204 | Harding | Harding | 0 | +--------+-----------+----------+-----------+