Mur*_*ilo 322 sql sybase select type-conversion
我正在使用Sybase,我正在做一个select,它返回一个名为"iftype"的列,但它的类型是int,我需要转换为varchar.当我尝试在没有转换功能的情况下进行选择时,我收到此错误:
错误代码257,SQL状态37000:不允许从数据类型"VARCHAR"到"INT"的隐式转换.使用CONVERT函数运行此查询.
我不知道如何实现该功能CONVERT.有人可以帮帮我吗?
Tob*_*oth 565
使用转换功能.
SELECT CONVERT(varchar(10), field_name) FROM table_name
Run Code Online (Sandbox Code Playgroud)
小智 92
使用STR功能:
SELECT STR(field_name) FROM table_name
Run Code Online (Sandbox Code Playgroud)
float_expression
是具有小数点的近似数值(浮点)数据类型的表达式.
长度
是总长度.这包括小数点,符号,数字和空格.默认值为10.
十进制
是小数点右边的位数.decimal必须小于或等于16.如果decimal小于16,则结果将被截断为小数点右侧的16位.
来源:https://msdn.microsoft.com/en-us/library/ms189527.aspx
Ham*_*ian 23
你可以使用CAST功能:
SELECT CAST(your_column_name AS varchar(10)) FROM your_table_name
Run Code Online (Sandbox Code Playgroud)
实际上,您不需要使用 STR 或 Convert。只需选择 'xxx'+LTRIM(ColumnName) 即可完成这项工作。可能 LTRIM 在幕后使用 Convert 或 STR。
LTRIM 还消除了提供长度的需要。它似乎适用于整数或浮点数而无需担心截断。
SELECT LTRIM(ColumnName) FROM TableName
Run Code Online (Sandbox Code Playgroud)
此外,LTRIM 比 STR 好,因为
SELECT STR(1234567890.123)
Run Code Online (Sandbox Code Playgroud)
给出 1234567890 而
SELECT LTRIM(1234567890.123)
Run Code Online (Sandbox Code Playgroud)
给出 1234567890.123