在SQL Server T-SQL中,我曾经使用过像这样的场景
SELECT .. FROM .. WHERE sometable.eng LIKE (SELECT tmpcolumn FROM tmptable WHERE tmpID = @counter) + '%';
如何传递LIKE(子查询)+'%'在Oracle正确吗? 它是否真的适用于Oracle 11g +?
.. smth LIKE (SELECT .. FROM ..) + '%';
固定长度的下划线_不符合我的需要,所以只有%。
答案 0 :(得分:3)
Oracle使用||
进行字符串连接,而不是+
。所以它应该是:
smth LIKE (SELECT .. FROM ..) || '%'
答案 1 :(得分:0)
这似乎是一个奇怪的表述。就像一张纸条,我会把查询写成:
SELECT ..
FROM ..
WHERE EXISTS (SELECT 1
FROM tmptable
WHERE tmpID = @Counter AND
sometable.eng LIKE tmpcolumn || '%'
);
在关键字LIKE
和通配符之间放置子查询会使查询更难阅读(至少对我而言)。