样式/格式对SQL的影响

样式/格式对SQL的影响,sql,coding-style,Sql,Coding Style,忽略版本,格式化SQL代码的最佳实践是什么 我更喜欢这种方式(方法A): 同事更喜欢另一种方法(方法B): 我想知道是否有任何区别-查询优化程序似乎为两者生成相同的执行计划。那么,也许这只是可读性 这是我第一次看到使用方法B编写SQL,还有人这样编写SQL吗?就我个人而言,我发现阅读方法B非常困难 编辑:请注意,代码在一行,大写,以便在本问题中使两者更具可比性。方法B是一种类似子选择的语法,但其解析方式与方法a相同。使用它没有害处。我个人也更喜欢方法A,因为它可以以线性方式读取。我认为A更可读,

忽略版本,格式化SQL代码的最佳实践是什么

我更喜欢这种方式(方法A):

同事更喜欢另一种方法(方法B):

我想知道是否有任何区别-查询优化程序似乎为两者生成相同的执行计划。那么,也许这只是可读性

这是我第一次看到使用方法B编写SQL,还有人这样编写SQL吗?就我个人而言,我发现阅读方法B非常困难


编辑:请注意,代码在一行,大写,以便在本问题中使两者更具可比性。

方法B是一种类似子选择的语法,但其解析方式与方法a相同。使用它没有害处。我个人也更喜欢方法A,因为它可以以线性方式读取。

我认为A更可读,而且大多数示例代码都使用这种样式。解析相同的产品和查询计划都是相同的,就SQLServer而言,没有区别

为了便于阅读,我通常还使用大写关键字和缩进:

SELECT col 
FROM a 
  INNER JOIN b 
    ON a.id = b.id  
  INNER JOIN c 
    ON b.id = c.id

我个人的喜好是

SELECT col1, col2, col3, 
       col4, col5
FROM a
  INNER JOIN b ON a.id = b.id  
  INNER JOIN c ON b.id = c.id
WHERE a.col1 = 1 

我认为一致性是关键,在可读性方面,我更喜欢你的方式,而不是你的同事。

我的风格完全相同。只是在那个例子中没有。我也更喜欢这样写代码,除非有很多连接条件,然后我把。。。。在下一行。如果开始看起来有点拥挤,我也会这样做。我更喜欢SQL关键字的大写形式,因为只有几个关键字,这有助于将它们与列/表名区分开来。IMO:)已经有足够多的答案说明了同样的问题(方法A更常见,也更容易被大多数人理解),但另外SQLServerCentral.com上的这个问题说明了“B”方法如何导致真正的“难解之谜”:65%的人(通常是SQL专业人士)回答这个问题时出错了。
SELECT col 
FROM a 
  INNER JOIN b 
    ON a.id = b.id  
  INNER JOIN c 
    ON b.id = c.id
SELECT col1, col2, col3, 
       col4, col5
FROM a
  INNER JOIN b ON a.id = b.id  
  INNER JOIN c ON b.id = c.id
WHERE a.col1 = 1