我正在使用Sybase,我正在做一个选择,它返回我一个名为“iftype”的列,但它的类型是int,我需要转换成varchar。当我尝试在没有转换函数的情况下进行选择时,我得到了这个错误:

错误码257,SQL状态37000:不允许从数据类型“VARCHAR”到“INT”的隐式转换。使用CONVERT函数运行此查询。

我不知道如何实现转换函数。有人能帮帮我吗?


当前回答

您可以使用CAST函数:

SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name

其他回答

使用转换函数。

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

使用STR函数:

SELECT STR(field_name) FROM table_name

参数

float_expression

带有小数点的近似数字(浮点)数据类型的表达式。

长度

是总长度。这包括小数点、符号、数字和空格。默认值是10。

小数

是小数点右数的位数。小数必须小于或等于16。如果decimal大于16,则结果被截断到小数点右16位。

来源:https://msdn.microsoft.com/en-us/library/ms189527.aspx

CONVERT(DATA_TYPE, Your_Column)是SQL中CONVERT方法的语法。通过这个转换函数,我们可以将位于逗号(,)右侧的列的数据转换为位于逗号(,)左侧的数据类型。请参阅下面的示例。

SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName

实际上你不需要使用STR或Convert。只需选择“xxx”+LTRIM(ColumnName)就可以完成这项工作。 LTRIM可能在底层使用Convert或STR。

LTRIM还不需要提供长度。它似乎适用于整数或浮点数,而不用担心截断。

SELECT LTRIM(ColumnName) FROM TableName

此外,LTRIM比STR更好

SELECT STR(1234567890.123) 

给了1234567890 而

SELECT LTRIM(1234567890.123) 

给1234567890.123

SELECT Cast(Cast([field_name] AS BIGINT) AS NVARCHAR(255))
FROM   table_name