テキスト関数¶
テキスト処理関数は、 text
型の値を操作および変換します。
通常、 text
型以外の入力値は、関数を適用する前に自動的に text
値に変換されます。
次の関数がテキスト関数です。
ASCII¶
説明
ASCII
関数は、入力値の最初の文字の Unicode コードポイントを返します。
構文
ASCII( <value:text> ):int
value
: 必須。
例
SELECT ASCII('Denodo') AS value1, ASCII('興味深い例') AS value2
value1 |
value2 |
---|---|
68 |
33288 |
CHAR¶
説明
CHAR
関数は、Unicode コードポイントに関連付けられた文字を返します。
入力コードポイントが 255 より大きく、この関数が Impala または Hive にプッシュダウンされた場合、この関数は NULL
を返します。これは、Impala や Hive が 255 より大きいコードポイントをサポートしていないからです。
構文
CHAR( <code:int> ):text
code
: 必須。取得する文字の Unicode コードポイント。
例
SELECT CHAR(65) AS char_1, CHAR(945) AS char_alpha;
char_1 |
char_alpha |
---|---|
A |
α |
CONCAT¶
説明
CONCAT
関数は、複数のパラメータを 1 つの文字列に連結します。
構文
CONCAT( <value 1:text>, <value 2:text> [, <value N:text> ]* ):text
value 1
: 必須。連結する最初のテキストアイテム。value 2
: 必須。連結する 2 番目のテキストアイテム。value N
: オプション。連結する 1 つ以上の引数。
例
SELECT original_text, CONCAT('I like to fly to ', originalText, ' every
month') as concat_text
FROM my_table;
original_text |
concat_text |
---|---|
San Francisco, CA |
I like to fly to San Francisco, CA every month |
San Jose, CA |
I like to fly to San Jose, CA every month |
Birmingham, AL |
I like to fly to Birmingham, AL every month |
NY, NY |
I like to fly to NY, NY every month |
INSTR¶
説明
INSTR
関数は、別の文字列内の文字列のインデックスを返します。
構文
INSTR( <str1:text>, <str2:text> ):int
str1
内で str2
が最初に出現する箇所の最初の文字のインデックスを返します。
最初の文字のインデックスは 0
です。
str1
が NULL
の場合、この関数は NULL
を返します。
str2
が str1
内に存在しない場合は、 -1
を返します。
Virtual DataPort によって実行された場合、この関数は大文字と小文字を区別します。一方、データベースにプッシュダウンされた場合は、動作が異なることがあります。この関数が大文字と小文字を区別するデータベースと、区別しないデータベースがあります。
例
SELECT original_text, INSTR(originalText, 'i') as result
FROM myTable;
original_text |
result |
---|---|
San Francisco, CA |
9 |
San Jose, CA |
-1 |
Birmingham, AL |
1 |
NY, NY |
-1 |
LEN¶
説明
LEN
関数は、テキスト文字列内の文字の数を返します。
構文
LEN( <value:text> ):int
value
: 必須。長さを検索する対象のテキスト。空白は文字としてカウントされます。
例
SELECT original_text, LEN(originalText) as len_text
FROM myTable;
original_text |
len_text |
---|---|
San Francisco, CA |
18 |
San Jose, CA |
13 |
Birmingham, AL |
15 |
NY, NY |
7 |
LEFT¶
説明
LEFT
関数を使用して、テキスト文字列の先頭 (左端) から指定した数の文字を抽出します。
構文
LEFT( <value:text>,int )
value
: 必須。空白も文字としてカウントします。int
: 必須。正の値を指定する必要があります。
例
SELECT original_text, LEFT(originalText,2) as left_text
FROM myTable;
original_text |
left_text |
---|---|
San Francisco, CA |
Sa |
San Jose, CA |
Sa |
Birmingham, AL |
Bi |
NY, NY |
NY |
LOWER¶
説明
LOWER
関数は、テキストを小文字に変換します。
構文
LOWER( <value:text> ):text
value
: 必須。小文字に変換するテキスト。
例
SELECT original_text, LOWER(originalText) as lower_text
FROM Mytable;
original_text |
lower_text |
---|---|
San Francisco, CA |
san francisco, ca |
San Jose, CA |
san jose, ca |
Birmingham, AL |
birmingham, al |
NY, NY |
ny, ny |
MAX¶
説明
MAX
関数は、辞書式順序でリスト内の最大の引数を返します。この関数は、入力値の各文字の Unicode 値を比較します。
この関数は大文字と小文字を区別します。
構文
MAX( <value 1:text>, <value 2:text> [, <value N:text> ]* ):text
value 1
: 必須。value 2
: 必須。value N
: オプション。1 つ以上の引数。
例
例 1
SELECT MAX('DENODO', 'Virtual DataPort')
FROM Dual();
max |
---|
Virtual DataPort |
例 2
SELECT MAX('denodo', 'Virtual DataPort')
FROM Dual();
max |
---|
denodo |
この例では、結果は「denodo」になります。最初の文字の Unicode 値が最大であるためです (d = 100、V = 86)。
MIN¶
説明
MIN
関数は、辞書式順序でリスト内の最小の引数を返します。この関数は、入力値の各文字の Unicode 値を比較します。
この関数は大文字と小文字を区別します。
構文
MIN( <value 1:text>, <value 2:text> [, <value N:text> ]*): text
value 1
: 必須。value 2
: 必須。value N
: オプション。
例
例 1
SELECT MIN('ITPilot', 'Virtual DataPort', 'Solution Manager')
FROM Dual();
min |
---|
ITPilot |
例 2
SELECT MIN('i', 'v', 'a')
FROM Dual();
min |
---|
a |
この例では、結果は「a」になります。最初の文字の Unicode 値が最小であるためです (a = 97、i = 105、v = 118)。
POSITION¶
説明
POSITION
関数は、ある文字列 (value1
) が別の文字列 (value2
) 内に出現する場合、最初の出現位置を返します。
構文
POSITION( <value 1:text> IN <value 2:text> ) : int
value 1
:value2
内で検索するテキスト。value 2
:
value 1
または value 2
が NULL
の場合、この関数は NULL
を返します。
value 1
の長さがゼロの場合、1 を返します。
value 1
が value 2
内に出現しない場合、ゼロを返します。
例
SELECT POSITION('no' IN 'Denodo') AS pos_1, POSITION('z' IN 'Denodo') AS
pos_2
pos_1 |
pos_2 |
---|---|
3 |
0 |
REGEXP¶
説明
REGEXP
関数は、指定した正規表現に一致する、入力文字列の各部分文字列を、指定した値に置き換えます。
単にある文字列を別の文字列に置換する場合、 REPLACE 関数を使用することをお勧めします。 REPLACE
は入力パラメータをリテラルとして解釈するためです。 REGEXP
では 2 番目と 3 番目のパラメータが正規表現になります。正規表現の一部の文字には特殊な意味があるため、正規表現に精通していない場合、予想外の結果になる可能性があります。たとえば、正規表現 .
は単なるドット文字ではなく、任意の文字を表します。
構文
REGEXP( <original text:text>, <regex:text>, <replacement:text> ):text
original text
: 必須。入力文字列。regex
: 必須。original text
と照合する正規表現。replacement
: 必須。regular expression
との一致それぞれをこの内容で置換します。この値も正規表現であるため、キャプチャグループを指定できます。
いずれかのパラメータが NULL の場合、この関数は NULL を返します。
regex
は正規表現であるため、どのようなテキスト値でも渡すことができますが、一部の文字には特殊な意味があることに注意してください。たとえば、 .
は単なるドットではなく任意の文字を表し、 \d
は数字を表します。
この関数は、Java の正規表現の動作に準拠しています。詳細については、 正規表現に関する Java のドキュメント を参照してください。この関数は次の Java コードと同じです。
originalText.replaceAll(regularExpression, replacement);
文字 ^
と $
は、それぞれ入力値の先頭と末尾にのみ一致します。行終端記号を検出するには、 \
を使用します。
例
例 1
文字「#」を「*」に置換します。
SELECT REGEXP('########## DATABASE ##########', '#', '*') AS result
FROM Dual();
result |
---|
****** DATABASE ****** |
例 2
SELECT REGEXP('#.#.#.#.#. DATABASE #.#.#.#.#.', '.', '#') AS result
FROM Dual();
result |
---|
############################## |
この例では、すべての文字が「#」に置き換えられます。正規表現では、文字 .
は任意の文字を表すからです。
例 3
文字クラス「\d」を使用した正規表現。桁数とキャプチャグループを表します。
SELECT REGEXP('NUMBER: 3829022', '(?i)number: (\d+)', 'Value: $1') AS result
FROM Dual();
result |
---|
Value: 3829022 |
次の点を考慮してください。
2 番目のパラメータは
(?i)
から始まります。これにより 大文字と小文字が区別されない一致 が実行されます。そのためnumber...
はNUMBER: ...
に一致します。(?i)
がなければ、式は不一致になります。3 番目のパラメータの
$1
は、最初のキャプチャグループ、つまり 2 番目のパラメータの(\d+)
を表します。
REGEXP_COUNT¶
説明
REGEXP_COUNT
関数は、文字列にパターン (正規表現) が出現する回数を返します。
構文
REGEXP_COUNT(String originalText, String regex): int
original text
: 必須。入力文字列。regex
: 必須。一致する回数をカウントするためにoriginal text
と照合する正規表現。
いずれかのパラメータが NULL の場合、この関数は NULL を返します。デフォルトでは、正規表現と照合する際、大文字と小文字は区別されます。
regex
は正規表現であるため、どのようなテキスト値でも渡すことができますが、一部の文字には特殊な意味があることに注意してください。たとえば、 .
は単なるドットではなく任意の文字を表し、 \d
は数字を表します。
この関数は、Java の正規表現の動作に準拠しています。詳細については、 正規表現に関する Java のドキュメント を参照してください。この関数は次の Java コードと同じです。
例
例 1
大文字と小文字が区別されないことを考慮した結果を取得する場合、パターンでそれを定義する必要があります。
SELECT REGEXP_COUNT('SSSs', '(?i)s') AS result
FROM Dual();
result |
---|
Value: 4 |
例 2
originalText フィールドに「a」が出現する回数をカウントします。
SELECT REGEXP_COUNT('DAtabase', 'a') AS result
FROM Dual();
result |
---|
Value: 2 |
REMOVEACCENTS¶
説明
REMOVEACCENTS
関数は、アクセント付きのすべての文字をアクセントなしの同じ文字で置換します。
構文
REMOVEACCENTS( <value:text> ):text
value
: 必須。アクセントを削除するテキスト。
例
SELECT REMOVEACCENTS('bё áéíóú àèìòù') as text_without_accent
FROM Dual();
text_without_accent |
---|
Bё aeiou aeiou |
REPEAT¶
説明
REPEAT
関数は、指定した回数、テキストを繰り返します。
構文
REPEAT ( <value:text>, <count:int> ):text
value
: 必須。繰り返すテキスト。count
: 必須。value
を繰り返す回数分。0 または 0 未満の場合、この関数は空の文字列を返します。
例
SELECT REPEAT('Denodo ', 3), REPEAT('Platform', 0)
repeat |
repeat_ |
---|---|
Denodo Denodo Denodo |
REPLACE¶
説明
REPLACE
関数は、指定された文字列が出現するすべての箇所を別の文字列に置き換えます。
構文
REPLACE( <value:text>, <from:text>, <to:text> ):text
value
: 必須。一部またはすべてを置換するテキスト。from
: 必須。置換するすべての出現箇所。to
: 必須。from
のすべての出現箇所を置換するテキスト。
value
が NULL であるか、または from
が空の文字列である場合、この関数は NULL を返します。from
または to
が NULL の場合、この関数は value
を返します。
例
SELECT original_text, REPLACE(originalText, 'CA', 'California') as
replace_text
FROM my_table;
original_text |
replace_text |
---|---|
San Francisco, CA |
San Francisco, California |
San Jose, CA |
San Jose, California |
Birmingham, AL |
Birmingham, AL |
NY, NY |
NY, NY |
REPLACEMAP¶
説明
REPLACEMAP
関数は、入力パラメータとして text
値とキー/値ペアのリストを取り、テキスト内で各キーが出現するすべての箇所をその値で置換します。
キー/値ペアのリストはビューまたはマップから取得できます (「 マップの定義 」を参照)。
リストをビューから取得する場合、キーはそのビューのいずれかのフィールドから取得され、値は別のフィールドから取得されます。
リストをマップから取得する場合、以下の点に注意してください。
マップが作成される際、マップの重複するエントリは破棄されます。
マップの値にキーが含まれない場合、キーの順序は重要ではありません。含まれる場合、キーの自然な順序に従って置換が繰り返し実行されます。
構文 1
REPLACEMAP( <search text:text>, <map_name:text> ):text
search_text
: 必須。一部またはすべてを置換するテキスト。map_name
: 必須。キー/値のペアを含むマップ名。
map_name
が存在しない場合、この関数は NULL
を返します。
構文 2
REPLACEMAP( <search_text:text>, <database name.view name:text>, <keyField:text>, <valueField:text> ):text
searchText
: 必須。一部またはすべてを置換するテキスト。database name.view name
: 必須。キー/値のペアを含むビュー。customer360.Report Timeline
(「customer360」はビュー「Report Timeline」のデータベース。データベース名とビュー名の間の.
に注意すること) など。keyField
: 必須。キーを含む、view_name
のフィールド。valueField
: 必須。値を含む、view_name
のフィールド。
viewName
が存在しない場合、この関数は NULL
を返します。
keyField
または valueField
がビューのフィールドではない場合、この関数は NULL
を返します。
例
例 1
次のマップについて考えてみます。
CREATE MAP simple "daysOfTheWeek" (
'Sun' = 'Sunday'
'Mon' = 'Monday'
'Tus' = 'Tuesday'
'Wed' = 'Wednesday'
'Thur'= 'Thursday'
'Fri' = 'Friday'
'Sat' = 'Saturday'
);
SELECT text_block
, replacemap (textblock, 'daysOfTheWeek') as text_block_with_full_name
FROM V;
text_block |
text_block_with_full_name |
---|---|
I like to travel on Sun |
I like to travel on Sunday |
I am available to travel on Mon |
I am available to travel on Monday |
My best day of vacation is Sat because I see my relatives on Wed |
My best day of vacation is Saturday because I see my relatives on Wednesday |
3 番目の行にはマップのキーが 2 つ (「Sat」および「Wed」) 含まれ、どちらのキーもマップ内でこれらのキーの値に置換されます。
CREATE MAP
ステートメントでは、マップの名前が二重引用符で囲まれています。そうしないと、マップや他のエレメントは小文字で作成されます。たとえば、 CREATE MAP daysOfTheWeek...
の場合、マップ daysoftheweek
が作成されます。
この関数の 2 番目のパラメータは、大文字と小文字が作成時と同じマップ名にする必要があります。たとえば、 CREATE MAP daysOfTheWeek...
ステートメントでマップを作成した場合、 REPLACEMAP
の 2 番目のパラメータは daysoftheweek
(小文字) にする必要があります。
Virtual DataPort のエレメントの ID の詳細については、「 エレメント名 (識別子) 」を参照してください。
例 2
days_of_the_week
というビューについて考えてみます。
full_day_name |
abbreviated_format |
---|---|
Sunday |
Sun |
Monday |
Mon |
Tuestday |
Tus |
Wednesday |
Wed |
Thursday |
Thur |
Friday |
Fri |
Saturday |
Sat |
続いて次のクエリについて考えてみます。
-- In this example, "customer360" is the database that has the view "days_of_the_week".
SELECT text_block,
replacemap (text_block, 'customer360.days_of_the_week', 'abbreviated_format',
'full_day_name') AS text_block_with_full_name
FROM V;
text_block |
text_block_with_full_name |
---|---|
I like to travel on Sun |
I like to travel on Sunday |
I am available to travel on Mon |
I am available to travel on Monday |
My best day of vacation is Sat because I see my relatives on Wed |
My best day of vacation is Saturday because I see my relatives on Wednesday |
RIGHT¶
説明
RIGHT
関数を使用して、テキスト文字列の末尾 (右端) から指定した数の文字を抽出します。
構文
RIGHT( <value:text>,int )
value
: 必須。空白も文字としてカウントします。int
: 必須。正の値を指定する必要があります。
例
SELECT original_text, RIGHT(originalText,2) as right_text
FROM myTable;
original_text |
right_text |
---|---|
San Francisco, CA |
CA |
San Jose, CA |
CA |
Birmingham, AL |
AL |
NY, NY |
NY |
SIMILARITY¶
説明
SIMILARITY
関数は、指定したテキスト類似性アルゴリズムに基づいて、2 つのテキスト文字列のテキスト類似性を計算します。
構文
SIMILARITY( <value 1:text>, <value 2:text> [ , <algorithm:text> ]):double
value 1
: 必須。比較するテキスト。value 2
: 必須。value1 と比較するテキスト。algorithm
: オプション。使用するアルゴリズム。Virtual DataPort は以下のテキスト類似性アルゴリズムを提供しています (デフォルトでは「JaroWinklerTFIDF」)。
テキスト文字列間の距離に基づくアルゴリズム |
テキスト内での共通項の出現に基づくアルゴリズム |
両方の組み合わせ |
---|---|---|
ScaledLevenshtein |
TFIDF |
JaroWinklerTFIDF |
JaroWinkler |
Jaccard |
|
Jaro |
UnsmoothedJS |
|
Level2 Jaro |
||
MongeElkan |
||
Level2MongeElkan |
例
SELECT city, SIMILARITY(city , 'San') as similarity
FROM V
ORDER BY similarity DESC
city |
similarity |
---|---|
San Jose |
0.71 |
San Francisco |
0.71 |
NY |
0.00 |
Birmingham |
0.00 |
SPLIT¶
説明
SPLIT
関数は、指定した正規表現との一致部分を区切りとして文字列を分割し、これらの部分文字列を含む配列を返します。
結果には正規表現は含まれません。
構文
SPLIT( <regexp:text>, <value:text> ):array
regexp
: 必須。正規表現。この正規表現に一致する部分文字列は結果に含まれません。value
: 必須。フィールド名または分割するテキスト。
例
次のビュー V
について考えてみます。
a |
b |
---|---|
10.10 |
I am some text |
-80.10 |
Text is $% needed always |
20.50 |
Text for a living |
NULL |
NULL |
例 1
SELECT SPLIT('0', a), SPLIT('Text\s+\w+', b)
FROM V
split |
split_1 |
---|---|
Array { { 1 } { .1 } } |
Array { I am some text } |
Array { { -8 } { .1 } } |
Array { , $% needed always} |
Array { { 2 } { .5 } } |
Array { , a living } |
NULL |
NULL |
正規表現 Text\s+\w+
は、「Text」という語とその横にある語をキャプチャします。
例 2
SELECT split(' ', B)
FROM V
SPLIT |
---|
Array { { I } { am} { some} { text} } |
Array { { Text } { is } { $% } { needed } { always } } |
Array { { Text } { for } { a } { living } } |
NULL |
例 3
SELECT split('\.', A)
FROM V
SPLIT |
---|
Array { { 10 } { 10 } } |
Array { { -80 } { 10 } } |
Array { { 20 } { 50 } } |
NULL |
正規表現「\\.」は、ドット文字をキャプチャします。このような表記になるのは、文字 \
がエスケープされているためです。このように指定しない場合、 .
は任意の文字に一致します。
SUBSTRING / SUBSTR¶
説明
SUBSTRING
関数および SUBSTR
関数は、入力文字列の部分文字列を返します。
構文 1 と 構文 2 の結果は同じではありません。構文 2 で使用した場合、この関数は SQL-92 標準の仕様どおりに動作します。
構文 1
SUBSTRING( <value:text>, <start index:int> [, <end index:int> ]):text
value
: 必須。抽出する文字を含むテキスト文字列。start index
: 必須。新しい部分文字列の最初の文字のインデックス。入力文字列の最初の文字のインデックスは 0 です。end index
: オプション。最後の文字のインデックス。
この構文の場合、この関数は、入力文字列内の start index
から始まる部分文字列を返します。
start index
が負の値の場合、この関数はインデックス 0 から始まる部分文字列を返します。
end index
が存在しない場合、結果は start index
から入力値の末尾までになります。
end index
が存在する場合、結果は start index
からインデックス endIndex-1
にある文字までになります。したがって、結果の長さは endIndex-startIndex
になります。
次の条件のいずれかを満たす場合、この関数は空の文字列を返します。
start index
とend index
が等しい。start index
がvalue
の長さより大きい。
次の条件のいずれかを満たす場合、この関数は NULL
を返します。
パラメータのいずれかが
NULL
である。start index
がend index
より大きい。
構文 2
SUBSTRING( <value:text> FROM <start index:int> [ FOR <length:int> ] ):text
SUBSTR( <value:text> FROM <start index:int> [ FOR <length:int> ] ):text
SUBSTR( <value:text>, <start index:int> [, <length:int> ] ):text
これら 3 つの関数呼び出し方法の動作は、まったく同じです。
この構文の動作は、SQL-92 標準の SUBSTRING
関数で定義されています。
この関数は、入力文字列の
start index
から始まる部分文字列を返します (この構文では、最初の文字のインデックスは1
ですが 構文 1 では0
です)。length
が存在しない場合、入力値の末尾までが部分文字列になります。length
が存在し、入力文字列の長さがstart_index + length
より短い場合、部分文字列は length で指定した長さ以下になります。少なくとも 1 つのパラメータが
NULL
の場合、この関数はNULL
を返します。length
が存在し、start index
またはlength
が負の値の場合、次の式によって結果が指定されます。この関数は、文字 C から始まってvalue
の L 個の文字を返します。L = Minimum (
start index
+length
, length ofvalue
+ 1) - Maximum (start_index
, 1)C =
start index
と 1 のうちの大きい方。
length
が存在せずstart index
が負の値の場合、この関数はvalue
を返します。
構文 1 の例
SELECT city, SUBSTRING(city, 1), SUBSTRING(city, 1, 5)
FROM locations
city |
substring |
substring_1 |
---|---|---|
San Jose |
an Jose |
an J |
San Francisco |
an Francisco |
an F |
Birmingham |
irmingham |
irmi |
NY |
Y |
Y |
構文 2 の例
SELECT city, SUBSTRING(city FROM 2), SUBSTRING(city FROM 3 FOR 5)
FROM locations
city |
substring |
substring_1 |
---|---|---|
San Jose |
an Jose |
n Jos |
San Francisco |
an Francisco |
n Fra |
Birmingham |
irmingham |
rming |
NY |
Y |
<empty string> |
構文 2 の例
SELECT SUBSTRING ('Denodo' from -2 for 4) AS f
f |
---|
D |
TEXTCONSTANT¶
注釈
TEXTCONSTANT
関数は非推奨であり、Denodo Platform の将来のメジャーバージョンで削除される可能性があります。
非推奨のすべての機能のリストについては、「 Denodo Platform 8.0 で非推奨となった機能 」のセクションを参照してください。
説明
TEXTCONSTANT
関数は、パラメータをテキストとして解析します。
構文
TEXTCONSTANT( <text> ):text
text
: 必須。結果にそのまま表示するテキスト。
例
SELECT original_text, TEXTCONSTANT('I like to fly to') as constant_text
FROM mytable;
original_text |
constant_text |
---|---|
San Francisco, CA |
I like to fly to |
San Jose, CA |
I like to fly to |
Birmingham , AL |
I like to fly to |
NY, NY |
I like to fly to |
TRIM¶
説明
TRIM
関数は、先行または後続、あるいはその両方の埋め込み文字を除いた入力文字列を返します。デフォルトでは、削除する埋め込み文字は空白文字とキャリッジリターンです。ただし、別の文字を指定できます。
LTRIM
(「 LTRIM 」を参照) は、先行する空白文字とキャリッジリターンのみを削除します。
RTRIM
(「 RTRIM 」を参照) は、後続の空白文字とキャリッジリターンのみを削除します。
構文 1
最初の構文では、削除される文字は空白文字とキャリッジリターンです。
2 番目の構文では、この関数はデフォルトで空白文字を削除しますが、キャリッジリターンは削除しません。
構文 2
TRIM ( <value:text> )
value
: 必須。空白文字とキャリッジリターンを削除するテキスト。
構文
TRIM ( [ <trim specification> [ <trim character:text> ] FROM ] <value:text> )
<trim specification> ::=
LEADING
| TRAILING
| BOTH
value
: 必須。埋め込み文字を削除するテキスト。デフォルトでは空白文字です。このパラメータが NULL の場合、この関数は NULL を返します。
LEADING
/TRAILING
/BOTH
: オプション。LEADING
: 入力値の先頭から埋め込み文字を削除します。TRAILING
: 入力値の末尾から埋め込み文字を削除します。BOTH
: 入力値の先頭と末尾から埋め込み文字を削除します。
このトークンを追加しない場合、トークン
BOTH
を追加した場合と等しくなります。trim character
: オプション。この関数は、先行または後続の値からこの文字を削除します。このパラメータに複数の文字が含まれる場合は、最初の文字のみが考慮され、その他の文字は無視されます。
例
例 1
入力値の先頭と末尾から空白文字とキャリッジリターンを削除するクエリ。
SELECT original_text, TRIM(originaltext) as trim_text
FROM mytable;
original_text |
trim_text |
---|---|
San Francisco , CA |
San Francisco , CA |
San Jose , CA |
San Jose , CA |
Birmingham , AL |
Birmingham , AL |
NY, NY |
NY, NY |
例 2
値の先頭から空白文字を削除するが、キャリッジリターンは削除しないクエリ。
SELECT original_text, TRIM( LEADING FROM originaltext) as trim_text
FROM mytable;
original_text |
trim_text |
---|---|
San Francisco , CA |
San Francisco , CA |
San Jose , CA |
San Jose , CA |
Birmingham , AL |
Birmingham , AL |
NY, NY |
NY, NY |
例 3
値の末尾から文字「c」を削除するクエリ。
SELECT original_text, TRIM( TRAILING 'c' FROM original_text ) as trim_text
FROM mytable;
original_text |
trim_text |
---|---|
aaabbcbccc |
aaabbcb |
aaabbb |
aaabbb |
<null> |
<null> |
UPPER¶
説明
UPPER
関数は、テキストを大文字に変換します。
構文
UPPER( <value:text> ):text
value
: 必須。大文字に変換するテキスト。
例
SELECT original_text, UPPER(originalText) as upper_text
FROM Mytable;
original_text |
upper_text |
---|---|
San Francisco , CA |
SAN FRANCISCO , CA |
San Jose , CA |
SAN JOSE , CA |
Birmingham , AL |
BIRMINGHAM , AL |
NY, NY |
NY , NY |