将INT转换为VARCHAR-SQL

将INT转换为VARCHAR-SQL,sql,select,type-conversion,sybase,Sql,Select,Type Conversion,Sybase,我正在使用Sybase,我正在执行一个select,它返回一个名为“iftype”的列,但它的类型是int,我需要转换为varchar。当我尝试在不使用convert函数的情况下执行选择时,出现以下错误: 错误代码257,SQL状态37000:不允许从数据类型“VARCHAR”隐式转换为“INT”。使用CONVERT函数运行此查询 我不知道如何实现转换功能。有人能帮我吗?使用转换功能 SELECT CONVERT(varchar(10), field_name) FROM table_name

我正在使用Sybase,我正在执行一个select,它返回一个名为“iftype”的列,但它的类型是int,我需要转换为varchar。当我尝试在不使用convert函数的情况下执行选择时,出现以下错误:

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


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

使用转换功能

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

使用
STR
功能:

SELECT STR(field_name) FROM table_name
SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name

参数 浮点表达式

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

长度

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

十进制

小数点右边的位数。小数点必须小于或等于16。如果十进制数大于16,则结果将截断为小数点右侧的16位


来源:

您可以使用
CAST
功能:

SELECT STR(field_name) FROM table_name
SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name
CONVERT(数据类型,您的列)
是SQL中CONVERT方法的语法。通过此转换函数,我们可以将逗号(,)右侧的列的数据转换为逗号(,)左侧的数据类型。请参见下面的示例

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

实际上,您不需要使用STR或Convert。只需选择“xxx”+LTRIM(ColumnName)即可完成此任务。 LTRIM可能在引擎盖下使用Convert或STR

LTRIM还消除了提供长度的需要,通常默认值10对于整数到字符串的转换来说已经足够了

SELECT LTRIM(ColumnName) FROM TableName

从表_name中选择cast(cast([field_name]AS bigint)作为nvarchar(255)),我想您需要这个:根据错误,它是
VARCHAR
INT
,但我在回答他的问题,而不是错误消息。谢谢。但现在我又犯了一个错误。当我尝试执行这种选择时:从表\u name中选择CONVERT(varchar(10),field\u name)。或者甚至是普通的方法,比如:从表名称中选择字段名称。两者都是正确的。我不知道为什么。但是,当我尝试在选择的末尾使用convert或not时,我得到了相同的错误:不允许从数据类型“VARCHAR”隐式转换为“INT”。使用CONVERT函数运行此命令query@Murilo那是因为错误不是你想的那样。该错误告诉您,您的代码试图在需要
int
的地方使用
varchar
。您需要为我们编写实际的SQL语句来帮助您。@Tobberoth,不管它值多少钱,我刚刚通过Google登陆这里。SO的部分价值在于获得几乎所有问题的答案,即使是基本问题。我认为如果数字是一个大的负数,答案应该是
varchar(11)
STR()
应该是正确的答案,它比其他答案更简单,也不容易出错。出于某种奇怪的原因,这对我不起作用,因为它在文本前面添加了一个标签,不知道为什么。选定的解决方案确实有效。str在转换后的数字前面加空格,使其不可用。LTRIM(str())str()在转换为字符串的变量前面加空格。可以选择转换十进制变量,但不能转换Int。