SQL convertは、値の型変換をおこなう 文字列のキャラクターセット変更が可能
  • facebookページ
  • twitterページ
  • 2020.03.23

    SQL convertは、値の型変換をおこなう 文字列のキャラクターセット変更が可能

    SQLのconvertについてまとめています。

    convertは、SQLでデータ型の変換をおこなう関数です。EUCやUTF8の変換などキャラクターセットの変更が可能です。

    SQLのconvertの構文

    convertは、値のデータ型を変換する関数です。データベースにより、使い方に差異があります。

    例えば、MySQLの場合は、以下の書式で文字列をutf8のキャラクターセットに変換可能です。

    関連)MySQL :: MySQL 5.6 リファレンスマニュアル :: 12.10 キャスト関数と演算子

    convert関数を使ってユーザ変数に代入することで、キャラクタセットを指定することが可能です。

    データ型によっては、暗黙に自動変換されるケースがあります。例えば、以下のように整数型の値をconvert関数でchar型に変更することは可能ですが、整数型とchar型は暗黙に自動変換されるのでconvert関数自体が不要となります。

    同様に、char型の’1’と’3’は、convert関数を使わなくても、整数型に自動変換されます。

    -10をunsigned(符号なし)、sigined(符号あり)に変換すると、それぞれ以下のようになります。

    ‘1’をバイナリ型に変換すると、以下のようになります。

    文字列をdatetime型に変換すると、以下のようになります。

    Oracleのconvertは、現行リリースでは推奨されない

    Oracleでは、convertファンクションは「文字列を別のキャラクタセットに変換する」関数です。公式サイトによると、Oracleの現行のリリースでは、convertファンクションを使用しないことが推奨されています。

    例えば、以下はLatin-1文字列を、ASCIIのキャラクタセットに変換するSQLです。

    関連)OracleのCONVERT

    SQL Serverのconvertの暗黙・明示変換表

    SQL Serverのconvert関数は、値の型変換をおこないます。

    出典)CAST および CONVERT (Transact-SQL) – SQL Server | Microsoft Docs

    上記マトリックスの、青い四角系の箇所は、convert関数を使った明示的な変換が必要になります。オレンジの丸の箇所は、特に変換処理が不要で暗黙に自動変換されます。

    PostgreSQLのconvertは、変換方法の定義が可能

    PostgreSQLでは、以下の指定で型の変換が可能です。

    なお、usingを使った変換は、事前に変換方法をcreate convertで定義しておく必要があります。下記の指定方法は、変換対象と変換後のキャラクターセットを指定できます。

    関連)PostgreSQLの文字列関数と演算子

    まとめ

    ポテパンダの一言メモ
    • convert関数は、値の型を変換する関数。キャラクタセットの変換も可能。
    • Oracleのconvert関数の利用は推奨されていない。
    • PostgreSQLでは、convertの方式を事前に定義可能。

     



    優良フリーランス案件多数掲載中!
    フリーランスエンジニアの案件をお探しなら
    ポテパンフリーランス

    この記事をシェア

    • Facebookシェア
    • Twitterシェア
    • Hatenaシェア
    • Lineシェア
    pickup









    ABOUT US

    ポテパンはエンジニアと企業の最適なマッチングを追求する企業です。

    READ MORE