当前位置: 首页 > 面试题库 >

SQL语句缩进的良好做法

长孙智刚
2023-03-14
问题内容

缩进SQL语句的公认做法是什么?例如,考虑以下SQL语句:

SELECT column1, column2
FROM table1
WHERE column3 IN
(
SELECT TOP(1) column4
FROM table2
INNER JOIN table3
ON table2.column1 = table3.column1
)

应该如何缩进?非常感谢。


问题答案:
SELECT column1
     , column2
FROM table1
WHERE column3 IN
(
    SELECT TOP(1) column4
    FROM table2
    INNER JOIN table3
    ON table2.column1 = table3.column1
)

我喜欢将所有的“,”放在前面,这样,当SQL编辑器在X行出现错误时,我就永远不会搜索它们。

对于那些不使用这种类型的编写SQL语句的人来说,这是一个示例。两者都包含缺少逗号的错误。

SELECT sdcolumn123
 , dscolumn234
 , sdcolumn343
 , ffcolumn434
 , sdcolumn543
 , bvcolumn645
  vccolumn754
 , cccolumn834
 , vvcolumn954
 , cvcolumn104
FROM table1
WHERE column3 IN
(
    ...
)

SELECT sdcolumn123, dscolumn234, asdcolumn345, dscolumn456, ascolumn554, gfcolumn645 sdcolumn754, fdcolumn845, sdcolumn954, fdcolumn1054
FROM table1
WHERE column3 IN
(
    ...
)

在第一个示例中,我发现更容易,更快捷。希望本示例向您展示更多我的观点。



 类似资料:
  • 问题内容: 过去,我使用以下方法读取大量代码: 这样做是惯例吗? 优点和缺点是什么? 在我看来,这就像完成异常的“ Agent Orange”方式 编辑 处理方法中的预期异常 引发意外异常(一对一) 不在乎错误 那是路要走吗? 问题答案: 你不应该扔。这就是为什么。 Throwable是可抛出的事物层次结构的顶部,由and组成。由于根据定义是由不可挽救的条件引起的,因此将它们包括在方法声明中是没有

  • 问题内容: 我已经为JDBC连接编写了一个简单的包装程序,它可以工作,但是我想通过最佳实践来对其进行改进。它基本上有类似的方法,,,,,,和。为简单起见,我仅在此处发布前4种方法。 笔记: 可以重复使用同一查询对象,例如打开和关闭它,以及在再次打开之后。 我不是关闭每个查询的连接,而是关闭准备好的语句(这是正确的,或者我可以让准备好的语句保持打开状态,因为Connection对象会关闭它吗?) 当

  • 我正在使用Laravel5.6作为我个人项目的后端,我一直在做一些(对我来说)似乎是不好的做法,不管怎样,我想知道它是否真的那么糟糕。 首先,我使用的是Vue。js(CLI 3)项目作为客户端,我正在向我的Laravel后端发出请求。现在,为了处理通知/祝酒,我使用下一种格式: 不管我做得对还是错,我总是用同样的格式和

  • 问题内容: 我想知道创建Javadocs时的最佳实践。我有一个包含许多文件的项目。代码已由许多开发人员创建。每个文件都有一个注释,因此很明显谁创建了一个特定的类。 但是,当其他一些开发人员将新代码添加到文件中,对其进行修改等时,他应该如何告知团队的其他成员他已经创建了一些新功能或已经修改了现有代码?换句话说,我们应该如何“使Javadocs与现实兼容”?;) 将他的名字添加到现有标签中?然后,如果

  • 问题内容: 在SQL中,有什么方法可以缩短语法 到 一次又一次地在子句中写入相同的列名是不可行的。 问题答案: 没有没有办法将LIKE与IN 直接 结合 __ 有很多解决方法,例如本例中的SQL Server 这会将多个OR搜索条件更改为行和JOIN 或者,您可以使用UNION将多个查询合并为一个

  • 问题内容: 我有一个使用准备好的语句的Doctrine_RawSql查询。但是,当生成SQL查询时,它们似乎会被忽略。但是,如果我忽略了标记值,则会得到关于不匹配的绑定变量数量的异常(因此,至少是试图将它们包含在内)。 如果我内联包含这些值,Doctrine是否在幕后做任何事情以防止SQL注入? 这是我的代码: 这提供了以下SQL输出: 编辑:上的属性已正确设置。如果我对参数进行硬编码: 我遇到了