sql查詢遇到的問題

一、&与&&

在pl/sql developer中,比如查询如下sql

 select decode(column_name,'if1','value1','if2','value2','if3','value1&value2','else')
 from table_name

 就会出现如下变量对话框:
sql查詢遇到的問題_第1张图片
 要求输入的名称为value2的值,但是如果将&改为&&,才不会弹出上面的对话框,因为我们要求实现,如果column_name的值等于if3的时候输出value1&value2。并且,如果将对话框中的值输入为&value2,其执行结果和将&改为&&的执行结果一样,每次执行还是会弹出上面的对话框。

        由此可见,&是一个连接符,它会将它后面的字符串看成是一个新声明的没有值的变量,所以每次执行sql会要求输入变量的值。而&&是表示&后面的字符串&value2看成了已经给变量赋值为&value2,也就是,将第二个&看成了字符串。

        可以和||连接符对比一下,如果将上面sql语句的'value1&value2'改为:'value1'||'&'||'value2',它也会实现和&&同样的效果,因为||连接符是把后面的&看成了一个字符串,而不是一个特殊字符。

 

你可能感兴趣的:(sql查詢遇到的問題)