在IPython / Jupyter Notebook中格式化SQL查询

Bat*_*man 6 sql code-formatting ipython-notebook jupyter-notebook

我想在笔记本中显示一些SQL查询。我既不需要也不希望它们运行。我希望它们格式正确。至少我希望它们以新行正确缩进,尽管关键字突出显示也很好。是否已经存在解决方案?

Alg*_*old 6

如果将单元格设置为Markdown,则可以将sql查询编写为指定语言的代码(例如mysql)

``` mysql
SELECT *
FROM table_a AS a
LIMIT 10; 
```
Run Code Online (Sandbox Code Playgroud)

这将产生:

笔记本中的SQL

它突出显示关键字。不幸的是,它似乎没有处理缩进,这似乎是您要处理的主要问题,但这也许有所帮助。


Roe*_*ant 5

如果你 - 像我一样 - 发现自己在这里是因为你想突出(并运行)%%sql魔法,那么你最好使用这个答案的技巧。将其发布在这里是因为我花了相当长的时间才找到答案的正确关键字:)

require(['notebook/js/codecell'], function(codecell) {
  codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = {'reg':[/^%%sql/]} ;
  Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
  Jupyter.notebook.get_cells().map(function(cell){
      if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;
  });
});
Run Code Online (Sandbox Code Playgroud)