Closed. This question is opinion-based。它当前不接受答案。












想要改善这个问题吗?更新问题,以便editing this post用事实和引用来回答。

7年前关闭。



Improve this question




我正在为我工​​作的公司编写一个SQL编码标准。

我读过的文学作品说leading is the best option
select a.name
      ,a.surname
      ,a.address
from person a

但也尾随:
select a.name,
       a.surname,
       a.address
from person a

non standard at all
select name, is_disabled,
is_policy_checked, is_expiration_checked
from sys.sql_logins;

我的第一个问题是,全局是否接受任何SQL编码标准。如果没有,为什么不呢?我认为这将是非常有用的。 PEP8之类的东西。

哪一个是解决此问题的最实用方法?

提前致谢

最佳答案

解析并执行查询时没有任何错误。这意味着它符合该语言的基本标准。
至于在哪里放置逗号以及如何缩进代码,这完全取决于个人喜好。
是的,人们定义了一些最佳实践,大多数人再次将其视为“最佳实践”,但并非全部。
大多数人都会同意一些最佳实践,但并非全部。

  • 解析的查询不是最佳查询,请尝试编写









  • 在上面的查询中牢记所有这些东西,我会这样写。
    SELECT  A.NAME
           ,A.SURNAME
           ,A.ADDRESS
    
    FROM   PERSON A
    
    回到“重要问题”前导逗号还是尾随逗号?
    我个人发现在代码中以逗号开头更容易,因为它使我更容易找到下一列从何处开始或查找缺少的逗号。
    例如,在以下查询中,我对堆栈溢出问题之一的回答
    SELECT     radius
             , Diameter
             , CASE WHEN POWER( @p1 - x, 2) + POWER( @p2 - y, 2) <= POWER(radius, 2)
                 THEN 'Inside The Circle'
                WHEN POWER( @p1 - x, 2) + POWER( @p2 - y, 2) > POWER(radius, 2)
                 THEN 'Outside the Circle' END   [Inside/Outside]
    FROM @t
    
    如果我有一个逗号,前导逗号使查找缺失的逗号变得容易得多,并且可以准确地说出此SELECT查询有多少列。
    一些有用的链接
    Aaron Bertrand - Best Practices for Stored Procedures
    Richard Espinoza SQL Server Concepts and Best Practices to Build Transact SQL Stored Procedures
    pinaldave SQL SERVER – Bad Practice of Using Keywords as an Object Name – Avoid Using Keywords as an Object

    关于mysql - 前导逗号还是尾随逗号?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/21063036/

    10-10 12:29
    查看更多