Oracle SQL:NVARCHAR2包含一个数字字段

时间:2014-01-14 15:32:12

标签: sql oracle

我有一个表,其Id字段是一个数字。我想检查一下这个数字是否在一个被$$ ^ $$包围的表中:$$^$$1265$$^$$应该匹配下一个表中的id字段1265。以下是我到目前为止的情况:

SELECT * 
FROM VarTable a, IDTable b 
WHERE CONVERT(NVARCHAR2(400 CHAR), b.id) LIKE a.var_value;`

我也尝试过:

SELECT * 
FROM VarTable  a, IDTable b 
WHERE a.var_value LIKE CONVERT(VARCHAR(50), b.id);

底部抛出“缺少表达式错误”,顶部抛出“缺少右括号”错误。

有什么想法吗?

2 个答案:

答案 0 :(得分:4)

您似乎正在使用SQL Server convert()。该函数在Oracle中执行其他操作(请参阅here)。

尝试这样的事情:

SELECT *
FROM VarTable a join
     IDTable b
     on a.var_value LIKE '%$$'||cast(b.id as varchar2(255))||'$$%';

您还可以使用to_char()将数字转换为特定的字符串表示形式。

答案 1 :(得分:2)

这是一个数字和一个varchar,我会选择:

SELECT * 
  FROM VarTable a, 
       IDTable b 
 WHERE a.var_value LIKE '%$$'||b.id||'&&%';