如何在DBeaver中漂亮地格式化我的SQL查询?

21

我使用DBeaver作为我的主要IDE来查询多个数据库。当我查询表时,它会自动生成一个包含所有列的长选择语句。

当我进行更复杂的查询时,这样做变得非常繁琐和难以阅读。我希望将选择值分别显示在不同的行而不是一个长字符串中。

有没有一种简单的方法(例如使用Notepad ++或Sublime Text)来分解查询(在逗号后换行)?

举个例子,

select name, address, city, state, country, zip_code, birthday, membership_type 
from customers

select
name,
address,
city,
state,
country,
zip_code,
birthday,
membership_type
from customers

谷歌“SQL整理”并找到一些可以满足您需求的结果。尝试使用http://www.sql-format.com/。 - Mike G
1
请参见 https://dev59.com/Hmsz5IYBdhLWcg3weHyU - Mike G
7个回答

34

DBeaver有一个用于此目的的快捷方式。 在SQL编辑器中: 输入图像描述


如果有其他人遇到同样的问题,我想提醒一下,在多个SQL语句的格式化中,如果它们之间没有分号,那么格式化可能无法按预期工作。一旦添加了分号,它就能够很好地工作了,截至版本:6.1.2.201907061627。 - previouslyactualname
2
最佳答案是因为它除了DBeaver之外没有使用任何其他工具。 - cpinamtz

13

是的,有一种方法。我使用Notepad++,因为它是免费的,并且我用它处理所有事情!不管怎样,Notepad++有一个名为“穷人的T-SQL格式化程序”的插件,只需点击即可运行。您还可以获得一些自定义选项,例如是否要自动大写表名等。

输入图像描述


我想知道如何在DBeaver中使用它。我选择了外部格式化选项,并在命令行中输入了"C:\ Users \ user \ Downloads \ SqlFormatter.1.6.10 \ SqlFormatter.exe" $ {file}。我正在使用临时文件。我将超时设置为10秒。它没有报错,但也没有进行格式化。 - Frantumn
这是我询问此事的 GitHub 页面链接。https://github.com/TaoK/PoorMansTSqlFormatter/issues/285 - Frantumn

12

选择需要格式化的查询,按下 Ctrl+shift+F 即可完成操作。我正在使用 DBeaver 6.3.0 版本。


8
有另一个适用于DBeaver的外部SQL。可以在这里找到:SQLinForm SQL格式化程序,并且可以像这样包含为外部格式化程序 DBeaver的外部格式化程序

链接是404。 - RonJohn

2
在SublimeText中,我假设您已经安装了Package Control?如果没有,请尽快安装,这是一个至关重要的工具。
从Package Control中,有许多选项可以实现您想要的功能。这里有一些选项 我建议先使用SqlBeautifier,然后尝试其他选项,找到最适合您口味的工具。

0
在屏幕上右键点击,将会弹出此菜单,并按照附图中显示的指示进行操作。 输入图像描述

你能描述一下你的回答如何改进了Yurii的回答吗? - Roman Luštrik

-3

使用反引号 ` 代替双引号 " 或单引号 '


6
你正在回答什么问题? - Toto
在我的Sublime中,如果我有一个很长的查询语句并且想要将其分开,我会使用反引号。例如:var sql="select table1_id, table1_name from table1 where table1_id=? and table1_status=1" ; 它只需要一行,但是使用反引号 ` 我可以将其分成多行以方便操作。 - ParagDineshGupta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接