将数字列与Oracle中的String进行比较

时间:2015-08-17 13:27:01

标签: sql oracle

我在Oracle Table中有几列。

EMP_SEQ_NO  Number(5)
Some_COL    Varchar(20)

EMP_SEQ_NO    Some_COL
10             ABCD
11              11
12             Test
13             Tommy
14              14
15              15
16              Ronny

我正在尝试做类似

的事情
Select * from EMP where EMP_SEQ_NO=Some_COL

抛出无效数字错误。

请帮忙

3 个答案:

答案 0 :(得分:4)

使用to_char解决您的问题。

Select * from EMP where to_char(EMP_SEQ_NO)= to_char(Some_COL)

答案 1 :(得分:0)

它们都是不同类型的。所以,你应该将其中一个投射到另一个的类型:

Select * from EMP 
where CAST(EMP_SEQ_NO as varchar(20)) = Some_COL

Select * from EMP 
where EMP_SEQ_NO = CAST(Some_COL as number(5))

答案 2 :(得分:0)

to_number将解决此问题

Select * from EMP where EMP_SEQ_NO= to_number(Some_COL, '99999');