在java derby DB中从INTEGER转换CHAR

时间:2013-07-09 07:00:08

标签: sql derby

在下面的查询中想要在else部分给出整数值。 如果我给,错误是: 错误代码-1,SQL状态42X89:类型'CHAR'和'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'

我该怎么做?

3 个答案:

答案 0 :(得分:1)

将该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'

答案 1 :(得分:0)

转换为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

答案 2 :(得分:0)

强制转换为char是好的,但是它将具有所有空格填充,因此在转换为char之后,您必须将char转换为varchar,然后再转换为RTRIM。