我有一个SELECT语句,它被编写为与SQLPLUS一起用于Oracle DB。
该代码与SQLPlus完美配合。
我试图理解这个SELECT语句的含义:
SELECT '"' || a1 || '","' || a2 || '","' || b1 || '","' || c1 || '","' || c2 || '","' || c3 || '","' || sum(d1) || '",'
FROM ...
WHERE ...
GROUP BY ...
ORDER BY ...
具体来说,我试图理解以下符号序列的含义:
||
&安培;
'"'
&安培;
'","'
&安培;
'",'
为什么SELECT语句以'"''开头? ||?
为什么SELECT部分以逗号结尾?
它们是什么/它们在做什么?
它们等同于什么?
这是从哪里来的?这是SQLPlus还是Oracle原生的?我根本找不到任何描述这个的文档。我已经尝试了很多谷歌搜索,但看到我不知道它们是什么(以及因此要搜索的内容),很难在其上找到任何内容。
答案 0 :(得分:1)
在ORACLE中||
用于将字符串连接在一起,它与SQL-Server +
'"'
& '","'
& '",'
只是字符串的一部分。它仅用于显示输出但没有任何意义。
这里是关于Oracle Concatenation Operator http://docs.oracle.com/cd/B19306_01/server.102/b14200/operators003.htm
的文档为什么SELECT语句以'"''开头? ||
就像在评论中提到的那样,它是在两侧用"
包围列
为什么SELECT部分以逗号结尾?
这很奇怪,我希望它能以一些其他角色结束来识别行尾。
他们在做什么/他们在做什么?
很可能是CSV文件的特殊格式。
答案 1 :(得分:1)
见下文
|| 将连接字符串+数据
'“' - 将打印”
'“,”' - 将打印“,”
'“,' - 将打印”,
示例:
SQL> select '>>'|| DESCRIPTION_PARAMETER || ' string ' || DESCRIPTION_PARAMETER || ' $%&* ' from parameters_companies;
Examples output
======================
>>BASE UTC string BASE UTC $%&*<br>
>>WARRANTY string WARRANTY $%&*<br>
>>BASE UTC string BASE UTC $%&*<br>
SQL>