为什么会这样
SELECT * FROM STUDENT
WHERE FULLNAME LIKE 'Nguyen' || '%'
同样的
SELECT * FROM STUDENT
WHERE FULLNAME LIKE 'Nguyen%'
第一个如何工作?
答案 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 || '%'