SQL可读性:在选择列表的最后或开头更好的逗号?

时间:2016-02-04 16:07:48

标签: sql select formatting comma readability

即使我认为这可能仅仅是个人品味的问题,但我想知道您在选择列表中使用逗号的哪个(以及为什么)更喜欢。

一开始:

select first_name,
       last_name,
       address
  from people

或者最后:

<?xml version="1.0" encoding="UTF-8" ?>
<RSIL:Project xmlns:RSIL="http://www.url.com/RSIL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:eQ="http://www.url.com/eQ" xsi:schemaLocation="http://www.url.com/RSIL Name_RSIL.xsd">

我个人更喜欢在每行的开头使用逗号,特别是当我处理比单列名更复杂/更长的值时。

我觉得这样做更舒服,因为我总是不知道新元素何时/何地开始&#34;。

我很想知道你们是否有任何偏好(或特定场景),以便从多个视图中看到这个主题。

4 个答案:

答案 0 :(得分:1)

好吧,我个人更喜欢在行尾使用逗号(并从新行开始所有select,from,where语句)。像这样:

select 
  first_name,
  last_name,
  address
from 
  people

也许是因为我习惯了这种格式,但实际上看起来很清晰易读。

答案 1 :(得分:0)

最好将逗号放在开头。这样做的原因是它可以更容易地注释掉属性。例如:

select first_name
      ,last_name
      ,address
from people

假设我们需要注释掉last_name列

select first_name
   --   ,last_name this is now commented out
        ,address
from people

答案 2 :(得分:0)

实际上,它们确实是通过人工语言处理的。乔·塞尔科(Joe Celko)(《 Smarties》杂志SQL的作者之一)指出了这一点:

  

但是请确保使用语言令牌结束发生拆分的行,以使读者知道还有更多内容。这就是为什么在行首放置逗号不是一个好习惯的原因。当您看到逗号时,您会知道后面有东西。同样,当您看到分号时,就知道它是终止符。这样一来,读者就可以在精神上关闭该代码单元,“清除缓冲区”并解析下一条语句。

hackernoon的Felipe Hoffa对领先的逗号的使用进行了深入研究,发现强制执行逗号的项目在GitHub上既不受欢迎,又不那么成功: https://hackernoon.com/winning-arguments-with-data-leading-with-commas-in-sql-672b3b81eac9

在前面使用SQL并没有错,但是它不受欢迎并且使读者分心,因为它降低了语言的可读性。我对其他人一无所知,但是当任何标点符号(句点,逗号,分号)位于除括号或方括号之外的一行的开头时,对我来说阅读代码并不容易。

答案 3 :(得分:0)

SQL 旨在让人类可读,具有自然语言界面,如 Fortran、Cobol 等。因此,在行尾使用分号。