Oracle / PLSQL条件如'string'|| '%'

时间:2017-07-10 07:23:56

标签: oracle plsql

为什么会这样

SELECT * FROM STUDENT
WHERE FULLNAME LIKE 'Nguyen' || '%'

同样的

SELECT * FROM STUDENT
WHERE FULLNAME LIKE 'Nguyen%'

第一个如何工作?

4 个答案:

答案 0 :(得分:1)

||concatenation operator。 Oracle将首先执行连接,然后使用LIKE来匹配模式。因此在操作上它将与第二个相同。
但是你应该使用第二个,因为它在性能和易读性方面更有效。
在使用LIKE匹配模式之前,第一个附加两个字符串的额外开销。

答案 1 :(得分:0)

第一个catenate' Nguyen'和'%'通过管道' ||'首先。
因为你没有像Nguyen那样的空间。或者' %',它与' Nguyen%'相同。

答案 2 :(得分:0)

这两者之间没有区别: 这里的双重管道(||)只是表达式的串联。

在db对like参数进行评估之前,它会连接

因此,两者都是相同的。

答案 3 :(得分:0)

与||相同运算符将'Nguyen'和'%'组合在一起,如果您要像下面那样对参数化变量进行组合,则将更加有用

SELECT * FROM STUDENT
WHERE FULLNAME LIKE :name || '%'