378

我正在使用 Sybase,我正在执行一个选择,它返回一个名为“iftype”的列,但它的类型是 int,我需要转换为 varchar。当我尝试在没有转换功能的情况下进行选择时,出现此错误:

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

我不知道如何实现该功能CONVERT。任何人都可以帮助我吗?

4

6 回答 6

643

使用转换功能。

SELECT CONVERT(varchar(10), field_name) FROM table_name
于 2013-11-14T13:59:14.433 回答
118

使用STR功能:

SELECT STR(field_name) FROM table_name

论据

浮动表达式

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

长度

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

十进制

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

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

于 2015-12-13T16:41:19.130 回答
31

您可以使用CAST功能:

SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name
于 2016-11-06T23:22:33.683 回答
16

实际上,您不需要使用 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

于 2020-02-18T14:10:54.483 回答
0

SELECT cast(CAST([field_name] AS bigint) as nvarchar(255)) FROM table_name

于 2020-07-24T09:55:08.543 回答
0

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

SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName
于 2020-02-18T11:59:05.883 回答