在javaderby数据库中从INTEGER转换CHAR



在下面的查询中,希望在else部分给出整数值。如果我给出,错误是:错误代码-1,SQL状态42X89:类型"CHAR"one_answers"INTEGER"不兼容。两种类型都不能分配给另一种类型。

select case
when ID = 1 then 'Issue'
when ID = 2 then 'Reload'
when ID = 3 then 'Redeem'
else ID
end
from TXN
where CARDNO = '10001'

我该怎么做?

只需将该ID投射到VARCHAR()

select case
when ID = 1 then 'Issue'
when ID = 2 then 'Reload'
when ID = 3 then 'Redeem'
else CAST(ID AS VARCHAR(2))
end
from TXN
where CARDNO = '10001'

转换为CHAR而不是VARCHAR:

select case
when ID = 1 then 'Issue'
when ID = 2 then 'Reload'
when ID = 3 then 'Redeem'
else CAST(ID AS CHAR(10))
end
from TXN
where CARDNO = '10001'

铸件的兼容类型:http://db.apache.org/derby/docs/10.2/ref/rrefsqlj33562.html

转换为char是可以的,但它会有所有的空格填充,所以在转换为char之后,您必须将char转换为varchar,然后再转换为RTRIM。

最新更新