所以我有两张表,我将用INNER JOIN引用。一方面,列类型为Number(3, 0)
,另一方面为Varchar(150)
。看到我不能更改数据类型,我必须将其投射到连接上。但是,在表格中,列是varchar,字符串总是有3位数,如'001','010'或甚至'100'等等......
我的解决方案是在连接上使用Case
,如下所示:
INNER JOIN TAB1 ON TAB1.VARCHAR_COL = Cast(Case...), AS Varchar(150)
Case
必须将数字格式化为带有树数字前缀的字符串,如上所述。
如果数据像'1'那样,Case必须格式化为'001',如果变为'10',它将变为'010'......
帮助我Case
。
编辑:varchar列的某些值不是数字,因此强制转换它会显示错误。
答案 0 :(得分:3)
似乎根本不需要CASE
。
TAB1.VARCHAR_COL = TO_CHAR( TAB2.NUMBER_COL, '000' )