我正在使用 Sybase,我正在执行一个选择,它返回一个名为“iftype”的列,但它的类型是 int,我需要转换为 varchar。当我尝试在没有转换功能的情况下进行选择时,出现此错误:
错误代码 257,SQL 状态 37000:不允许从数据类型“VARCHAR”到“INT”的隐式转换。使用 CONVERT 函数运行此查询。
我不知道如何实现该功能CONVERT
。任何人都可以帮助我吗?
我正在使用 Sybase,我正在执行一个选择,它返回一个名为“iftype”的列,但它的类型是 int,我需要转换为 varchar。当我尝试在没有转换功能的情况下进行选择时,出现此错误:
错误代码 257,SQL 状态 37000:不允许从数据类型“VARCHAR”到“INT”的隐式转换。使用 CONVERT 函数运行此查询。
我不知道如何实现该功能CONVERT
。任何人都可以帮助我吗?
使用转换功能。
SELECT CONVERT(varchar(10), field_name) FROM table_name
使用STR
功能:
SELECT STR(field_name) FROM table_name
浮动表达式
是带有小数点的近似数值(浮点)数据类型的表达式。
长度
是总长度。这包括小数点、符号、数字和空格。默认值为 10。
十进制
是小数点右边的位数。小数必须小于或等于 16。如果小数大于 16,则结果将被截断到小数点右侧的 16 位。
您可以使用CAST
功能:
SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name
实际上,您不需要使用 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
CONVERT(DATA_TYPE , Your_Column)
是 SQL 中 CONVERT 方法的语法。通过这个转换函数,我们可以将逗号(,)右侧的列的数据转换为逗号(,)左侧的数据类型。请看下面的例子。
SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName