7.15.2. cast_loose

7.15.2.1. 概要

バージョン 8.0.8 で追加.

cast_loose は文字列を指定した型へ緩くキャストします。対象の文字列がキャストできる場合、 cast_loose は、文字列を引数で指定された型にキャストします。対象の文字列がキャストできない場合、 cast_loose は、引数で指定されたデフォルト値を設定します。

7.15.2.2. 構文

cast_loose は3つの引数を受け取ります。

cast_loose(type, value, defaul_value)

type : キャスト後の値の型を指定します。

value : キャスト対象を指定します。

default_value : キャストに失敗した時に設定する値を指定します。

7.15.2.3. 使い方

使い方を示すために使うスキーマ定義とサンプルデータは以下の通りです。

実行例:

table_create Data TABLE_HASH_KEY ShortText
# [[0, 1337566253.89858, 0.000355720520019531], true]
load --table Data
[
{"_key": "100abc"}
{"_key": "100"}
]
# [[0, 1337566253.89858, 0.000355720520019531], 2]

以下の例では、"100"と"100abc"を cast_loose でキャストします。

実行例:

select Data   --output_columns '_key, cast_loose(Int64, _key, 10)'
# [
#   [
#     0,
#     0.0,
#     0.0
#   ],
#   [
#     [
#       [
#         2
#       ],
#       [
#         [
#           "_key",
#           "ShortText"
#         ],
#         [
#           "cast_loose",
#           null
#         ]
#       ],
#       [
#         "100abc",
#         10
#       ]
#       [
#         "100",
#         100
#       ]
#     ]
#   ]
# ]

cast_loose は"100"を100に"100abc"を10にキャストします。"100"はInt64にキャストできますが、"100abc"はInt64にキャストできないためです。

7.15.2.4. 戻り値

cast_loose はキャスト後の値かデフォルト値を返します。

7.15.2.5. 参考