写出优美SQL语句的捷径

  从事企业系统开发很多年了,在系统的工作流分析中,少不了要分析SQL语句,当系统积累到一定规模后,所涉及的数据库表会以几何数增长,因此会经常碰到很长的SQL语句,涉及到的表会达到几十张之多,当你拿到这样一段SQL时,需要分析各个表之间的关系,头就有点大!我Google了一下,没有找到对SQL语句进行断行及缩进的工具,但是工作中又经常碰到这种SQL,手动来断行及缩进的话,又是一种机械重复的工作,因此"懒"劲上来了,自己周末开发了一个简单的辅助工具,同时分享给大家,我已上传程序提供下载。

  我来简单的介绍一下开发原则:

  (1).SQL语句中的:from\select\union\where 遇到这些关键字会自动换行,如果有嵌套会自动缩进。

  (2).select 部分很长的话也会自动换行,case部分也会自动换行。

  程序中有3个文件:

  


  BreakSQLCmd.exe: 命令行工具

  BreakSQLUI.exe:界面工具,和命令行工具功能一样

  ObjString.dll:包含实际功能的dll

  然后再介绍一下使用方法:

  (1).BreakSQLCmd.exe:首先将要分拆的SQL复制(ctrl+c)一下,然后执行BreakSQLCmd.exe,执行成功后,分拆后的SQL就复制到粘贴板上,你在查询分析器中粘贴(ctrl+z)就行了.界面如下图:

  


  (2).BreakSQLUI.exe:这个有UI,操作简单,界面如下:

  


  这两个exe执行结果都是一样的,可以选择自己喜欢的方式!

  大家如果在使用中发现问题,可以回复我,并附上SQL,我可以来改进 :)

时间: 2024-09-12 22:26:37

写出优美SQL语句的捷径的相关文章

怎么写出一个sql语句来表示销售的配件的数量

问题描述 怎么写出一个sql语句来表示销售的配件的数量 String sql = "select '配件A' label,12 value " + "union all " + "select '配件B' label,10 value "; 来修改这个sql来表示表中的内容 解决方案 啥玩意,你这不是已经有这些数据了吗,还要改什么

优化SQL查询:如何写出高性能SQL语句

1. 首先要搞明白什么叫执行计划? 执行计划是数据库根据SQL语句和相关表的统计信息作出的一个查询方案,这个方案是由查询优化器自动分析产生的,比如一条SQL语句如果用来从一个 10万条记录的表中查1条记录,那查询优化器会选择"索引查找"方式,如果该表进行了归档,当前只剩下5000条记录了,那查询优化器就会改变方案,采用 "全表扫描"方式. 可见,执行计划并不是固定的,它是"个性化的".产生一个正确的"执行计划"有两点很重要:

写出高性能SQL语句的35条方法分析_数据库其它

(1)整合简单,无关联的数据库访问: 如果你有几个简单的数据库查询语句,你可以把它们整合到一个查询中(即使它们之间没有关系) (2)删除重复记录: 最高效的删除重复记录方法 ( 因为使用了ROWID)例子: DELETE FROM EMP E WHERE E.ROWID > (SELECT MIN(X.ROWID) FROM EMP X WHERE X.EMP_NO = E.EMP_NO); (3)用TRUNCATE替代DELETE: 当删除表中的记录时,在通常情况下, 回滚段(rollback

sql2005-求大神帮忙看看怎么写这条sql语句,毕设遇到瓶颈了

问题描述 求大神帮忙看看怎么写这条sql语句,毕设遇到瓶颈了 这是我的论坛的帖子信息表 create table tiezi ( tieziid int not null primary key identity(1,1), userid int , tztitle varchar(20) not null, tzcontent varchar(200)not null, tztime datetime not null, tztop varchar(1), hfnum int ) 这是帖子的回

请帮忙写一条SQL语句查询前一小时信息

问题描述 请帮忙写一条SQL语句查询前一小时信息 MSSQLServer,有个字段DateTime:2015-03-09 16:08:51.617 我想查询前一小时的信息,因为我公司是45分下班的,所以前一小时应该是14:45:00~14:45:00. 请问如何写一条语句可以查到当前小时的前一小时的信息呢?谢谢帮忙. 解决方案 select * from table where DATEDIFF('h',DateTime,now())>1 and DATEDIFF('h',DateTime,no

求大神解答-求大神写一下这个SQL语句,紧急

问题描述 求大神写一下这个SQL语句,紧急 表acct_item(acct_item_id,acct_id,acct_item_type_id,charge(费用:单位分)).查询acct_id总费用大于100元的合同号,按总费用降序,总费用相同时,按acct_id升序排列 解决方案 select acct_id from acct_item where charge>'10000' order by charge desc,acct_id desc 解决方案二: select acct_id

C# List中写出类似SQL的语句

从一个关系表中挑出一个我们需要的元素列表采用SQL语句是再容易不过的了,其实C#的List中也可以采用类似的方法,虽然List中集成了Select(), Where()等语句,不过如果你的判断规则较为复杂,或者想要看起来一目了然,以下的方法也是可行的: 首先假设你有一个类  代码如下 复制代码 public class People {     public string Name { get; set; }     public int Age { get; set; } }并且有一些初始化语

写出下列sql谢谢,超难sql,冰天雪地,光膀着跪求高手

问题描述 表A(id,name,regedate)表B(id,groupid)表C(id,name)求:1求出A表中每个月的注册用户,regedate格式是yyyy/mm/dd2求出A表中所有姓名相同的用户3A表中有相同名字的用户,把相同的选出来放入C表中4A表中姓名相同的id,保留注册最大时间的用户写出sql,谢谢2我只写出了第二个看对不对,同时其它的怎么写.selectnamefromAwherenamein(selectnamefromAwherecount(name)>1);同时有人把第

我写的通用分页源代码,简单到你只需要写一条 sql 语句就可以了,超级 cool!

分页|语句|源代码 这个分页代码使用很简单,只有4个步骤:(1)构造 SQL 查询语句.设置数据库连接字符串.设置每页记录显示数目(2)插入分页控制代码 <b>navigator_init.inc</b> 文件(3)在页面的适当地方(即你想显示"上页.下页"的地方),插入分页导航代码 <b>navigator.inc</b> (4)用循环显示本页记录 <一> 需要分页的 ASP 文件 sample.asp <%