ホームページ >データベース >mysql チュートリアル >SQL で整数を文字列 (varchar) に正しくキャストするにはどうすればよいですか?

SQL で整数を文字列 (varchar) に正しくキャストするにはどうすればよいですか?

Patricia Arquette
Patricia Arquetteオリジナル
2025-01-24 18:45:10750ブラウズ

How to Correctly Cast an Integer to a String (varchar) in SQL?

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。