我想知道其他人用于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
之后换行存在一些争议。选择在select
行中这样做的意图是为了允许其他操作符,例如“top X”,而不会更改布局。在此基础上,仅在关键查询元素之后保持一致的换行看起来可以获得良好的可读性。
删除from
和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 管理工具 SQL Server Management Studio / 查询分析器编写 SQL 的方式没有太大差异,但是它们确实有所不同。
我期待在 Stack Overflow 社区中是否存在关于此主题的共识。我一直很惊讶于有多少开发人员可以遵循其他语言的标准格式,却在处理 SQL 时变得如此随意。