INTをVARCHAR SQLに変換する


341

私はSybaseを使用していて、「iftype」という列を返す選択を行っていますが、その型はintであり、varcharに変換する必要があります。変換機能なしで選択しようとすると、次のエラーが発生します。

エラーコード257、SQL状態37000:データ型 'VARCHAR'から 'INT'への暗黙的な変換は許可されていません。このクエリを実行するには、CONVERT関数を使用します。

関数の実装方法がわかりませんCONVERT。誰か助けてもらえますか?


5
私はあなたがこれを必要だと思う:msdn.microsoft.com/en-us/library/ms187928.aspx
ラヨシュVeres

回答:


593

変換機能を使用します。

SELECT CONVERT(varchar(10), field_name) FROM table_name

8
エラーによると、それはだVARCHARINT私は彼の質問ではなく、エラーメッセージに答えますよ。
Tobberoth 2013年

2
ありがとう。しかし、今私は別のエラーを受け取りました。この種類の選択を実行しようとすると、SELECT CONVERT(varchar(10)、field_name)FROM table_nameになります。または、SELECT field_name FROM table_nameのような通常のものでもかまいません。どちらも正しいです。理由はわかりません。しかし、selectの最後の "where"を変換しようとしてもそうでなくても、同じエラーが発生します。データ型 'VARCHAR'から 'INT'への暗黙的な変換は許可されていません。CONVERT関数を使用してこのクエリを実行します
Murilo

3
@Muriloそれはエラーがあなたが考えているものからではないからです。エラーは、コードが必要なvarchar場所を使用しようとしていることを示していますint。私たちがあなたを助けるためにあなたは実際のSQLステートメントを書く必要があります。
Tobberoth 2013年

14
@Tobberoth、それだけの価値があるので、私はグーグルでここに着陸しました。SOの価値の一部は、基本的な質問であっても、ほとんどすべての質問に対する回答を得ることです。
KyleMit 14

6
varchar(11)負の数が多い場合はそうだと思います。
Trisped

100

STR関数を使用します。

SELECT STR(field_name) FROM table_name

議論

float_expression

小数点付きの概数値(float)データ型の式です。

長さ

全長です。これには、小数点、符号、数字、スペースが含まれます。デフォルトは10です。

小数

小数点の右側の桁数です。decimalは16以下でなければなりません。decimalが16より大きい場合、結果は小数点の右側の16桁に切り捨てられます。

ソース:https : //msdn.microsoft.com/en-us/library/ms189527.aspx


3
STR()正解である必要があります。他の方法よりも簡単でエラーが発生しにくくなります。
HerrimanCoder 2017年

7
奇妙な理由で、これはテキストの前にタブを追加するため、私にはうまくいきませんでした。理由はわかりません。選択されたソリューションはうまくいきました。
MaQy 2017年

3
strは、変換された数値の前にスペースを
埋め

13
LTRIM(STR())を使用
ashilon

2
STR()は、文字列に変換する変数の前に空白を付けます。10進変数を変換するのは良い選択ですが、Intの場合はそうではありません。
Ebleme


3

実際には、STRまたはConvertを使用する必要はありません。「xxx」を選択するだけで、LTRIM(1)が機能します。おそらく、LTRIMは内部でConvertまたはSTRを使用します。

LTRIMは長さを指定する必要もなく、通常はデフォルトの10で整数から文字列への変換に十分です。

SELECT LTRIM(ColumnName) FROM TableName

0

CONVERT(DATA_TYPE , Your_Column)SQLのCONVERTメソッドの構文です。この変換関数から、コンマ(、)の右側にある列のデータをコンマ(、)の左側にあるデータ型に変換できます。以下の例を参照してください。

SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.