clarkyu2016 / sql-beautify

VS Code extension that beautifies SQL(HQL).
MIT License
60 stars 20 forks source link

如何避免频繁的换行? #6

Closed zhangxiao-c closed 3 years ago

zhangxiao-c commented 3 years ago

我的代码里面有很多 nvl 的判断逻辑

nvl(
      today_table.some_field,
      yesterday_day.some_field
  ) as some_field

从代码可读性来说我更希望它是这样的

nvl(today_table.some_field, yesterday_day.some_field) as some_field

应该如何修改代码来实现这个功能呢?

clarkyu2016 commented 3 years ago

我的代码里面有很多 nvl 的判断逻辑

nvl(
      today_table.some_field,
      yesterday_day.some_field
  ) as some_field

从代码可读性来说我更希望它是这样的

nvl(today_table.some_field, yesterday_day.some_field) as some_field

应该如何修改代码来实现这个功能呢?

@IBITM 可以发一份数据字段脱敏后的版本吗,方便我定位问题? 因为我自己测了下: 这是我的原始sql:

select a,nvl(today_table.some_field,yesterday_day.some_field) as some_field test,a,b,c from table a

格式化后 SELECT a ,nvl(today_table.some_field,yesterday_day.some_field) AS some_field test ,a ,b ,c FROM TABLE a

zhangxiao-c commented 3 years ago

我的代码里面有很多 nvl 的判断逻辑

nvl(
      today_table.some_field,
      yesterday_day.some_field
  ) as some_field

从代码可读性来说我更希望它是这样的

nvl(today_table.some_field, yesterday_day.some_field) as some_field

应该如何修改代码来实现这个功能呢?

@IBITM 可以发一份数据字段脱敏后的版本吗,方便我定位问题? 因为我自己测了下: 这是我的原始sql:

select a,nvl(today_table.some_field,yesterday_day.some_field) as some_field test,a,b,c from table a

格式化后 SELECT a ,nvl(today_table.some_field,yesterday_day.some_field) AS some_field test ,a ,b ,c FROM TABLE a

可以尝试一下这个版本,之前的样例应该是字段名太短了,没有触发换行的逻辑,谢谢

select
    a,
    nvl(today_table.some_field_with_tooooo_may_character, yesterday_day.some_field_with_tooooo_may_character) as some_field_with_tooooo_may_character test,
    a,
    b,
    c
from
    table a
clarkyu2016 commented 3 years ago

@IBITM你提供的这段代码我格式化后看起来也比较正常 微信截图_20210506165056 不太清楚具体的原因,如果方便的话可以加下我的wechat: clarkmanutd,具体再研究下是什么问题

zhangxiao-c commented 3 years ago

我大概已经定位问题了,我应该安装了多种 format 工具,在格式化 SQL 的时候出现了冲突,现在屏蔽了其他的 format 工具,已经可以了,非常感谢帮助