0

我是新手,SQL我无法找出我做错了什么,我的查询看起来很逻辑,但它不会转换我的INT_VALUETO 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但我得到了同样的错误,请解释为什么我得到这个错误,因为它对我来说看起来很合乎逻辑。感谢进阶。

4

1 回答 1

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 语句的所有分支必须返回相同的数据类型。

于 2013-11-02T00:29:43.283 回答