我有一个具有数字的Id字段的表。我想查看一下,如果这个数字在$$^$$ ex:$$^$$1265$$^$$
所包围的表格中,应该与下一个表格中的ID字段1265
相匹配。以下是我迄今为止:Oracle SQL:NVARCHAR2包含一个数字字段
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);
底抛出一个“失踪表达错误”和上一个抛出一个“缺少右括号”的错误。
任何想法?
这工作完美。我早些时候尝试使用to_char(),但总是会出错。 oracle中的'||'串联?我正在尝试使用'+'... – LiverpoolFTW
Gordon - 只是好奇:在这种情况下,我通常会让Oracle为我隐式投射:'... LIKE'%$$'|| b.id || '$$%''。这是一个坏主意吗? –
@EdGibbs。 。 。对于'||'来说这是一个好主意,因为演员阵容很明显。在其他情况下,比如函数的参数,我为了可维护性而进行了明确的转换。因为我使用了很多SQL Server,所以我一直对字符串连接进行明确的转换。 SQL Server使用'+'来进行字符串连接,如果没有显式的强制转换,它会产生一个错误。 –