クエリと分析ステートメントで型変換関数を使用して、データ型を変換します。
Simple Log Service (SLS) は、次の型変換関数をサポートしています。
分析文で文字列を使用する場合は、文字列を一重引用符 ('') で囲む必要があります。 囲まれていない文字列または二重引用符 ("") で囲まれている文字列は、フィールド名または列名を示します。 たとえば、'status' は「status」という文字列を示し、statusまたは "status" は「status」というフィールドを示します。
|
関数 |
構文 |
説明 |
SQL |
SPL |
|
cast(x as type) |
x のデータ型を変換します。 変換に失敗すると、クエリ全体が失敗します。 |
√ |
√ |
|
|
try_cast(x as type) |
x のデータ型を変換します。 変換に失敗した場合は NULL を返し、処理を続行します。 説明
ダーティデータによってクエリ全体が停止するのを防ぐには、cast の代わりに try_cast を使用することを推奨します。 |
√ |
× |
|
|
typeof(x) |
x のデータ型を返します。 |
√ |
× |
cast 関数
x のデータ型を変換します。変換に失敗すると、クエリ全体が失敗します。
構文
cast(x as type)
パラメーター
|
パラメーター |
説明 |
|
x |
変換する式。すべてのデータ型をサポートしています。 |
|
type |
変換先の SQL データ型。有効値: 例: インデックスデータ型と SQL データ型のマッピングについては、「付録: データ型マッピング」をご参照ください。 |
戻り値のデータ型
type パラメーターで指定されたデータ型。
例
SQL
1 をブール値に変換します。
-
クエリと分析ステートメント
* | select cast(1 as boolean) -
クエリは
trueを返します。
SPL
1 をブール値に変換します。
-
クエリと分析ステートメント
* | extend a = cast(1 as boolean)
-
a の値は
trueです。
try_cast 関数
x のデータ型を変換します。変換に失敗した場合は NULL を返し、処理を続行します。
構文
try_cast(x as type)
パラメーター
|
パラメーター |
説明 |
|
x |
変換する式。すべてのデータ型をサポートしています。 |
|
type |
変換先の SQL データ型。有効値: 例: インデックスデータ型と SQL データ型のマッピングについては、「付録: データ型マッピング」をご参照ください。 |
戻り値のデータ型
type パラメーターで指定されたデータ型。
例
uid フィールドを varchar に変換します。
-
クエリと分析ステートメント
* | select try_cast(uid as varchar) -
結果には
_col0カラムが含まれます。両方の行の値はowner-01です。
typeof 関数
x のデータ型を返します。
構文
typeof(x)
パラメーター
|
パラメーター |
説明 |
|
x |
評価対象の式。すべてのデータ型をサポートしています。 |
戻り値のデータ型
varchar
例
request_time のデータ型を確認します。
-
クエリと分析ステートメント
* |SELECT typeof(request_time) -
クエリは、
request_timeのデータ型を示す文字列'double'を返します。
付録: データ型マッピング
インデックスデータ型と SQL データ型のマッピングは次のとおりです。
|
インデックスデータ型 |
SQL データ型 |
|
long |
bigint |
|
text |
varchar |
|
double |
double |
|
json |
varchar |