SQL で整数を文字列 (varchar) に変換します
多くのアプリケーションでは、整数データ型を文字列、特に varchar 型に変換する必要があります。この記事では、SQL で int を varchar に変換するいくつかの方法を紹介します。
何が問題ですか?
ユーザーが次のクエリを実行して int を varchar に変換しようとしました:
<code class="language-sql">select CAST(id as VARCHAR(50)) as col1 from t9; select CONVERT(VARCHAR(50),id) as colI1 from t9;</code>
これらのクエリではエラーが発生します。
解決策は何ですか?
int を varchar に変換するには、VARCHAR データ型の代わりに CHAR データ型を使用する必要があります。次のクエリは機能します:
<code class="language-sql">select CAST(id as CHAR(50)) as col1 from t9; select CONVERT(id, CHAR(50)) as colI1 from t9;</code>
なぜこのソリューションが機能するのでしょうか?
CHAR データ型は固定長の文字列データ型であり、VARCHAR は可変長の文字列データ型です。 int を CHAR に変換すると、int は指定された長さの文字列に変換され、残りの文字にはスペースが埋め込まれます。
一方、VARCHAR データ型は可変長の文字列データ型であり、文字列の長さが変化する可能性があることを意味します。 int を VARCHAR に変換すると、int は文字列に変換され、文字列の長さは int の長さによって決まります。
追加メモ
CAST 関数を使用する場合の構文は次のとおりです:
<code class="language-sql">CAST(expr AS data_type)</code>
ここで、 expr は変換される式、 data_type は変換されるデータ型です。
CONVERT 関数を使用する場合の構文は次のとおりです:
<code class="language-sql">CONVERT(expr, data_type)</code>
または
<code class="language-sql">CONVERT(expr USING transcoding_name)</code>
ここで、 expr は変換される式、 data_type は変換されるデータ型、 transcoding_name は変換メソッドの名前です。
以上がSQL で整数を文字列 (varchar) に正しくキャストするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。