SQL与Oracle - 特殊符号

时间:2014-03-12 17:10:04

标签: sql oracle

我有一个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原生的?我根本找不到任何描述这个的文档。我已经尝试了很多谷歌搜索,但看到我不知道它们是什么(以及因此要搜索的内容),很难在其上找到任何内容。

2 个答案:

答案 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>