Beam ZetaSQL 文字列関数
このページでは、Beam ZetaSQL でサポートされている ZetaSQL 文字列関数について説明します。
これらの文字列関数は STRING データに対して機能します。STRING 値は、整形式の UTF-8 である必要があります。すべての文字列比較は、Unicode の正規等価性を考慮せずに、バイト単位で実行されます。
演算子の構文 | 説明 |
---|---|
CHAR_LENGTH(value) | 文字列の長さを文字数で返します |
CHARACTER_LENGTH(value) | CHAR_LENGTH のシノニム |
CONCAT(value1[, …]) | 最大5つの値を連結して1つの結果にします |
ENDS_WITH(value1, value2) | 2番目の値が最初の値の接尾辞である場合は TRUE を返します |
LTRIM(value1[, value2]) | TRIM と同じですが、先頭の文字のみを削除します。 |
REPLACE(original_value, from_value, to_value) | original_value 内の from_value のすべての出現箇所を to_value に置換します |
REVERSE(value) | 入力文字列の逆を返します |
RTRIM(value1[, value2]) | TRIM と同じですが、末尾の文字のみを削除します |
STARTS_WITH(value1, value2) | 2番目の値が最初の値の接頭辞である場合は TRUE を返します。 |
SUBSTR(value, position[, length]) | 指定された値の部分文字列を返します |
TRIM(value1[, value2]) | value2 に一致するすべての先頭および末尾の文字を削除します |
CHAR_LENGTH
CHAR_LENGTH(value)
説明
STRING の長さを文字数で返します。
戻り値の型
INT64
例
Table example:
+----------------+
| characters |
+----------------+
| абвгд |
+----------------+
SELECT
characters,
CHAR_LENGTH(characters) AS char_length_example
FROM example;
+------------+---------------------+
| characters | char_length_example |
+------------+---------------------+
| абвгд | 5 |
+------------+---------------------+
CHARACTER_LENGTH
CHARACTER_LENGTH(value)
説明
CHAR_LENGTH のシノニム。
戻り値の型
INT64
例
Table example:
+----------------+
| characters |
+----------------+
| абвгд |
+----------------+
SELECT
characters,
CHARACTER_LENGTH(characters) AS char_length_example
FROM example;
+------------+---------------------+
| characters | char_length_example |
+------------+---------------------+
| абвгд | 5 |
+------------+---------------------+
CONCAT
CONCAT(value1[, ...])
説明
最大5つの値を連結して1つの結果にします。
戻り値の型
STRING
例
Table Employees:
+-------------+-----------+
| first_name | last_name |
+-------------+-----------+
| John | Doe |
| Jane | Smith |
| Joe | Jackson |
+-------------+-----------+
SELECT
CONCAT(first_name, " ", last_name)
AS full_name
FROM Employees;
+---------------------+
| full_name |
+---------------------+
| John Doe |
| Jane Smith |
| Joe Jackson |
+---------------------+
ENDS_WITH
ENDS_WITH(value1, value2)
説明
2つの値を受け取ります。2番目の値が最初の値の接尾辞である場合は TRUE を返します。
戻り値の型
BOOL
例
Table items:
+----------------+
| item |
+----------------+
| apple |
| banana |
| orange |
+----------------+
SELECT
ENDS_WITH(item, "e") as example
FROM items;
+---------+
| example |
+---------+
| True |
| False |
| True |
+---------+
LTRIM
LTRIM(value1[, value2])
説明
TRIM と同じですが、先頭の文字のみを削除します。
戻り値の型
STRING
例
Table items:
+----------------+
| item |
+----------------+
| apple |
| banana |
| orange |
+----------------+
SELECT
CONCAT("#", LTRIM(item), "#") as example
FROM items;
+-------------+
| example |
+-------------+
| #apple # |
| #banana # |
| #orange # |
+-------------+
Table items:
+----------------+
| item |
+----------------+
| ***apple*** |
| ***banana*** |
| ***orange*** |
+----------------+
SELECT
LTRIM(item, "*") as example
FROM items;
+-----------+
| example |
+-----------+
| apple*** |
| banana*** |
| orange*** |
+-----------+
Table items:
+----------------+
| item |
+----------------+
| xxxapplexxx |
| yyybananayyy |
| zzzorangezzz |
| xyzpearzyz |
+----------------+
SELECT
LTRIM(item, "xyz") as example
FROM items;
+-----------+
| example |
+-----------+
| applexxx |
| bananayyy |
| orangezzz |
| pearxyz |
+-----------+
REPLACE
REPLACE(original_value, from_value, to_value)
説明
original_value
内の from_value
のすべての出現箇所を to_value
に置換します。from_value
が空の場合、置換は行われません。
戻り値の型
STRING
例
+--------------------+
| dessert |
+--------------------+
| apple pie |
| blackberry pie |
| cherry pie |
+--------------------+
SELECT
REPLACE (dessert, "pie", "cobbler") as example
FROM desserts;
+--------------------+
| example |
+--------------------+
| apple cobbler |
| blackberry cobbler |
| cherry cobbler |
+--------------------+
REVERSE
REVERSE(value)
説明
入力 STRING の逆を返します。
戻り値の型
STRING
例
WITH example AS (
SELECT "foo" AS sample_string UNION ALL
SELECT "абвгд" AS sample_string
)
SELECT
sample_string,
REVERSE(sample_string) AS reverse_string
FROM example;
+---------------+----------------+
| sample_string | reverse_string |
+---------------+----------------+
| foo | oof |
| абвгд | дгвба |
+---------------+----------------+
RTRIM
RTRIM(value1[, value2])
説明
TRIM と同じですが、末尾の文字のみを削除します。
戻り値の型
STRING
例
Table items:
+----------------+
| item |
+----------------+
| ***apple*** |
| ***banana*** |
| ***orange*** |
+----------------+
SELECT
RTRIM(item, "*") as example
FROM items;
+-----------+
| example |
+-----------+
| ***apple |
| ***banana |
| ***orange |
+-----------+
Table items:
+----------------+
| item |
+----------------+
| applexxx |
| bananayyy |
| orangezzz |
| pearxyz |
+----------------+
SELECT
RTRIM(item, "xyz") as example
FROM items;
+---------+
| example |
+---------+
| apple |
| banana |
| orange |
| pear |
+---------+
STARTS_WITH
STARTS_WITH(value1, value2)
説明
2つの値を受け取ります。2番目の値が最初の値の接頭辞である場合は TRUE を返します。
戻り値の型
BOOL
例
SELECT
STARTS_WITH(item, "b") as example
FROM (
SELECT "foo" as item
UNION ALL SELECT "bar" as item
UNION ALL SELECT "baz" as item) AS items;
+---------+
| example |
+---------+
| False |
| True |
| True |
+---------+
SUBSTR
SUBSTR(value, position[, length])
説明
指定された値の部分文字列を返します。position
引数は、部分文字列の開始位置を指定する整数で、position = 1 は最初の文字またはバイトを示します。length
引数は、STRING 引数の最大文字数です。
position
が負の場合、関数は value
の末尾からカウントし、-1 は最後の文字を示します。
position
が STRING の左端から外れた位置にある場合(position
= 0 または position
< -LENGTH(value)
)、関数は position = 1 から開始します。length
が value
の長さを超える場合、length
より少ない文字数が返されます。
length
が 0 未満の場合、関数はエラーを返します。
戻り値の型
STRING
例
Table items:
+----------------+
| item |
+----------------+
| apple |
| banana |
| orange |
+----------------+
SELECT
SUBSTR(item, 2) as example
FROM items;
+---------+
| example |
+---------+
| pple |
| anana |
| range |
+---------+
Table items:
+----------------+
| item |
+----------------+
| apple |
| banana |
| orange |
+----------------+
SELECT
SUBSTR(item, 2, 2) as example
FROM items;
+---------+
| example |
+---------+
| pp |
| an |
| ra |
+---------+
Table items:
+----------------+
| item |
+----------------+
| apple |
| banana |
| orange |
+----------------+
SELECT
SUBSTR(item, -2) as example
FROM items;
+---------+
| example |
+---------+
| le |
| na |
| ge |
+---------+
TRIM
TRIM(value1[, value2])
説明
value2
に一致するすべての先頭および末尾の文字を削除します。value2
が指定されていない場合、すべての先頭および末尾の空白文字(Unicode 標準で定義されている)が削除されます。
value2
に複数の文字が含まれている場合、関数は value2
に含まれるすべての先頭または末尾の文字を削除します。
戻り値の型
STRING
例
Table items:
+----------------+
| item |
+----------------+
| apple |
| banana |
| orange |
+----------------+
SELECT
CONCAT("#", TRIM(item), "#") as example
FROM items;
+----------+
| example |
+----------+
| #apple# |
| #banana# |
| #orange# |
+----------+
Table items:
+----------------+
| item |
+----------------+
| ***apple*** |
| ***banana*** |
| ***orange*** |
+----------------+
SELECT
TRIM(item, "*") as example
FROM items;
+---------+
| example |
+---------+
| apple |
| banana |
| orange |
+---------+
Table items:
+----------------+
| item |
+----------------+
| xxxapplexxx |
| yyybananayyy |
| zzzorangezzz |
| xyzpearxyz |
+----------------+
SELECT
TRIM(item, "xyz") as example
FROM items;
+---------+
| example |
+---------+
| apple |
| banana |
| orange |
| pear |
+---------+