我是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
,但我也遇到了同样的错误,请解释原因
我得到这个错误,因为它对我来说看起来很合乎逻辑。
谢谢高级。
答案 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语句的所有分支必须返回相同的数据类型。