将varchar转换为数据类型int失败

时间:2013-11-02 00:22:11

标签: sql

我是SQL的新用户,我无法找出我做错了什么,我的查询看起来很逻辑,但它没有将INT_VALUE转换为VARCHAR_VALUE。我不想使用ALTER因为它需要保持INT值,我想给int值命名。

-- BEGIN

SELECT CAST(CASE WHEN COLUMN_NAME = INT_VALUE THEN 'VARCHAR_VALUE'
ELSE COLUMN_NAME END)AS VARCHAR(15)) FROM TABLE_NAME 

-- END

我确实尝试了CONVERT,但我也遇到了同样的错误,请解释原因 我得到这个错误,因为它对我来说看起来很合乎逻辑。 谢谢高级。

1 个答案:

答案 0 :(得分:0)

假设column_name是一个int列,你可以这样做。

Select
    case column_name 
        when int_value then 'varchar_value'
        else cast(column_name as varchar(15))
    end
from
    table_name

case语句的所有分支必须返回相同的数据类型。