substring
substring operator を使用すると、文字列の一部 (サブ文字列) のみを出力するためのオフセットを指定できます。この operator を使用して、たとえば従業員の名前全部ではなくイニシャルを出力する場合などに、文字列全体ではなく一部を出力できます。
構文
substring(<sourceString>, <startOffset>, <endOffset>) as <outputField>
substring(<sourceString>, <startOffset>) as <outputField>
ルール
startOffset
は、sourceString の長さよりも小さい正の整数でなければなりません。endOffset
は、startOffset 以上の正の整数でなければなりません。endOffset
を指定しないと、startOffset から sourceString の最後までがサブ文字列となります。endOffset
に sourceString の長さ以上の値を指定することもできますが、その場合は endOffset を指定しなかったのと同じ結果が返されます。
例
「Hello world!」から「world!」を出力
次のクエリは、「Hello world!」から「world!」のみを出力します。
… | substring("Hello world!", 6)
「Sumo Logic」から「Sumo」を出力
次のクエリは、「Sumo Logic」の社名から「Sumo」を出力します。
… | substring("Sumo Logic", 0, 4)
次のクエリは、社名全体を出力染ます。
… | substring("Sumo Logic", 0, 100)
dateTimeString 文字列から年を出力
次のクエリは、dateTimeString 文字列から年のみを出力します。
… | substring(dateTimeString, 0, 4)
従業員の氏名からイニシャルを取得
次のクエリは、firstName と lastName というサブ文字列から従業員のイニシャルを抽出して、文字を大文字に変換した後に、「initials」というフィールドに連結します。
| substring(firstName, 0, 1) as x
| substring(lastName, 0, 1) as y
| toUpperCase(concat(x, y)) as initials
無効な例
substring operator の無効な使用例を示します。
このクエリは、startOffset が負の値であるため、正しく実行されません。
… | substring("Hello world", -1)
このクエリは、endOffset の値が startOffset の値より小さいため、正しく実行されません。
… | substring("Hello world", 3, 2)