在我的上一份工作中,我们开发了一个非常依赖数据库的应用程序,并且我开发了一些格式标准,以便我们都可以使用通用布局编写 SQL。我们还开发了编码标准,但这些标准更特定于平台,所以我不会在这里讨论它们。
我很想知道其他人使用什么 SQL 格式化标准。与大多数其他编码环境不同,我还没有在网上为它们找到太多共识。
涵盖主要查询类型:
select
ST.ColumnName1,
JT.ColumnName2,
SJT.ColumnName3
from
SourceTable ST
inner join JoinTable JT
on JT.SourceTableID = ST.SourceTableID
inner join SecondJoinTable SJT
on ST.SourceTableID = SJT.SourceTableID
and JT.Column3 = SJT.Column4
where
ST.SourceTableID = X
and JT.ColumnName3 = Y
select
在,from
和之后对换行存在一些分歧where
。选择行的目的是允许其他操作符,例如“top X”而不改变布局。在此之后,在关键查询元素之后保持一致的换行似乎会产生良好的可读性。
from
在and之后删除换行符where
将是一个可以理解的修订。但是,在update
下面的查询中,我们看到 之后的换行符where
为我们提供了良好的列对齐。group by
同样,在或之后的换行可以order by
使我们的列布局清晰易读。
update
TargetTable
set
ColumnName1 = @value,
ColumnName2 = @value2
where
Condition1 = @test
最后,一个insert
:
insert into TargetTable (
ColumnName1,
ColumnName2,
ColumnName3
) values (
@value1,
@value2,
@value3
)
在大多数情况下,这些与 MS SQL Server Managements Studio / 查询分析器写出 SQL的方式相差不大,但是它们确实有所不同。
我期待着看看 Stack Overflow 社区是否就这个话题达成了共识。我一直惊讶于有多少开发人员可以遵循其他语言的标准格式,并且在使用 SQL 时突然变得如此随意。