当前位置:首页 » 编程语言 » sqlformatter
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sqlformatter

发布时间: 2022-09-13 23:42:35

❶ 怎么用正则表达式解析sql语句

先看要解析的样例SQL语句:

select * from al
SELECT * frOm al
Select C1,c2 From tb
select c1,c2 from tb
select count(*) from t1
select c1,c2,c3 from t1 where condi1=1
Select c1,c2,c3 From t1 Where condi1=1
select c1,c2,c3 from t1,t2 where condi3=3 or condi4=5 order by o1,o2
Select c1,c2,c3 from t1,t2 Where condi3=3 or condi4=5 Order by o1,o2
select c1,c2,c3 from t1,t2,t3 where condi1=5 and condi6=6 or condi7=7 group by g1,g2
Select c1,c2,c3 From t1,t2,t3 Where condi1=5 and condi6=6 or condi7=7 Group by g1,g2
Select c1,c2,c3 From t1,t2,t3 Where condi1=5 and condi6=6 or condi7=7 Group by g1,g2,g3 order by g2,g3

解析效果之一(isSingleLine=false):

原SQL为select * from al
解析后的SQL为
select
*
from
al

原SQL为SELECT * frOm al
解析后的SQL为
select
*
from
al

原SQL为Select C1,c2 From tb
解析后的SQL为
select
C1,c2
from
tb

原SQL为select c1,c2 from tb
解析后的SQL为
select
c1,c2
from
tb

原SQL为select count(*) from t1
解析后的SQL为
select
count(*)
from
t1

原SQL为select c1,c2,c3 from t1 where condi1=1
解析后的SQL为
select
c1,c2,c3
from
t1
where
condi1=1

原SQL为Select c1,c2,c3 From t1 Where condi1=1
解析后的SQL为
select
c1,c2,c3
from
t1
where
condi1=1

原SQL为select c1,c2,c3 from t1,t2 where condi3=3 or condi4=5 order by o1,o2
解析后的SQL为
select
c1,c2,c3
from
t1,t2
where
condi3=3 or condi4=5
order by
o1,o2

原SQL为Select c1,c2,c3 from t1,t2 Where condi3=3 or condi4=5 Order by o1,o2
解析后的SQL为
select
c1,c2,c3
from
t1,t2
where
condi3=3 or condi4=5
order by
o1,o2

原SQL为select c1,c2,c3 from t1,t2,t3 where condi1=5 and condi6=6 or condi7=7 group by g1,g2
解析后的SQL为
select
c1,c2,c3
from
t1,t2,t3
where
condi1=5 and condi6=6 or condi7=7
group by
g1,g2

原SQL为Select c1,c2,c3 From t1,t2,t3 Where condi1=5 and condi6=6 or condi7=7 Group by g1,g2
解析后的SQL为
select
c1,c2,c3
from
t1,t2,t3
where
condi1=5 and condi6=6 or condi7=7
group by
g1,g2

原SQL为Select c1,c2,c3 From t1,t2,t3 Where condi1=5 and condi6=6 or condi7=7 Group by g1,g2,g3 order by g2,g3
解析后的SQL为
select
c1,c2,c3
from
t1,t2,t3
where
condi1=5 and condi6=6 or condi7=7
group by
g1,g2,g3
order by
g2,g3

解析效果之二(isSingleLine=true):

原SQL为select * from al
解析后的SQL为
select
*
from
al

原SQL为SELECT * frOm al
解析后的SQL为
select
*
from
al

原SQL为Select C1,c2 From tb
解析后的SQL为
select
C1,
c2
from
tb

原SQL为select c1,c2 from tb
解析后的SQL为
select
c1,
c2
from
tb

原SQL为select count(*) from t1
解析后的SQL为
select
count(*)
from
t1

原SQL为select c1,c2,c3 from t1 where condi1=1
解析后的SQL为
select
c1,
c2,
c3
from
t1
where
condi1=1

原SQL为Select c1,c2,c3 From t1 Where condi1=1
解析后的SQL为
select
c1,
c2,
c3
from
t1
where
condi1=1

原SQL为select c1,c2,c3 from t1,t2 where condi3=3 or condi4=5 order by o1,o2
解析后的SQL为
select
c1,
c2,
c3
from
t1,
t2
where
condi3=3 or
condi4=5
order by
o1,
o2

原SQL为Select c1,c2,c3 from t1,t2 Where condi3=3 or condi4=5 Order by o1,o2
解析后的SQL为
select
c1,
c2,
c3
from
t1,
t2
where
condi3=3 or
condi4=5
order by
o1,
o2

原SQL为select c1,c2,c3 from t1,t2,t3 wher www.hnne.com e condi1=5 and condi6=6 or condi7=7 group by g1,g2
解析后的SQL为
select
c1,
c2,
c3
from
t1,
t2,
t3
where
condi1=5 and
condi6=6 or
condi7=7
group by
g1,
g2

原SQL为Select c1,c2,c3 From t1,t2,t3 Where condi1=5 and condi6=6 or condi7=7 Group by g1,g2
解析后的SQL为
select
c1,
c2,
c3
from
t1,
t2,
t3
where
condi1=5 and
condi6=6 or
condi7=7
group by
g1,
g2

原SQL为Select c1,c2,c3 From t1,t2,t3 Where condi1=5 and condi6=6 or condi7=7 Group by g1,g2,g3 order by g2,g3
解析后的SQL为
select
c1,
c2,
c3
from
t1,
t2,
t3
where
condi1=5 and
condi6=6 or
condi7=7
group by
g1,
g2,
g3
order by
g2,
g3

使用的类SqlParser,你可以拷贝下来使用之:

package com.sitinspring.common.sqlFormatter;

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
* SQL语句解析器类
* @author: sitinspring([email protected])
* @date: 2008-3-12
*/
public class SqlParser{
/**
* 逗号
*/
private static final String Comma = ",";

/**
* 四个空格
*/
private static final String FourSpace = " ";

/**
* 是否单行显示字段,表,条件的标识量
*/
private static boolean isSingleLine=true;

/**
* 待解析的SQL语句
*/
private String sql;

/**
* SQL中选择的列
*/
private String cols;

/**
* SQL中查找的表
*/
private String tables;

/**
* 查找条件
*/
private String conditions;

/**
* Group By的字段
*/
private String groupCols;

/**
* Order by的字段
*/
private String orderCols;

/**
* 构造函数
* 功能:传入构造函数,解析成字段,表,条件等
* @param sql:传入的SQL语句
*/
public SqlParser(String sql){
this.sql=sql.trim();

❷ notepad++ 怎么格式化代SQL码

方法/步骤

1、下载安装notepad++

2、打开notepad++,选择“插件”-“Plugin Manager”-“Show Plugin Manager”

3、在“Plugin Manager”中,找到“PoorMansTSqlFormatter”插件并安装。有时候因为网络问题,会失败,多尝试几次!

4、安装好插件后,简单配置下。

5.点击格式化,看效果

❸ sql formatter怎么实现的

system("color 0A");
AllSort<int> sort;//定义排序类对象
vector<int> arr; //定义并初始化一个容器,进行数组操作
int len=10; //控制数组长度
char ans='y';
do

❹ 安装sql2005出现setup exe遇到问题需要关闭我们对此引起的不便表示抱歉如题 谢谢了

一.MSDTC运行帐户问题 确认MSDTC (Microsoft Distributed Transaction Coordinator)服务正在运行,并且其启动帐户是NT AUTHORITY\Network Service”。按照以下步骤来检查: 1. 点击“开始”->“运行”->services.msc 2. 在服务列表中找到Distributed Transaction Coordinator,双击以编辑其属性 3. 在属性窗口切换至登录选项卡,确认其启动帐号为”NT AUTHORITY\Network Service”(密码为空即可) 4. 启动DTC服务再尝试安装SQL Server 2005 结果:这个步骤我已经尝试过,不是这个问题。 二.分析SQL Server 2005安装日志 将C:\Program Files\Microsoft SQL Server\90\Setup Bootstrap\LOG\目录下所有的文件( 包括Summary.txt和Files子目录下的所有文件) 发送给微软技术支持工程师进行分析。 结果:这个步骤我没有做过,不过微软工程师好像也没有发现线索。 三.COPY安装程序到硬盘安装尝试 建立D:\SQLServer2005 文件夹, 创建以下两个子文件夹:Servers和Tools。 Serviers文件夹拷贝SQL Server2005的第一张安装盘,包含所有要安装主 SQL Server 2005 组件。 Tools文件夹拷贝SQL Server 2005的第二张盘,包含为 SQL Server 2005 联机丛书和工具组件。运行D:\SQLServer2005\ Servers 文件夹下的Setup.exe,启动 SQL Server 2005 安装程序。 结果:以上方式安装过程中还是碰到同样的问题。 四.重新安装 COM+应用程序 1.从控制面板的“添加或删除程序”中,单击“添加/删除 Windows 组件”。 2.在“Windows 组件向导”中,不对选择做任何更改,单击“下一步”。 一直单击以完成向导,然后再次运行 SQL Server 2005 安装程序。 结果:问题没有解决。 通过以上分析微软的工程师总结如下: 目前还不确定引起这个错误的原因, 并且在安装日志中也没有找到更多的有用信息。 可能引起此类错误的原因有以下几种: 1. COM+的配置问题。 2. 帐号权限问题。 3.有一些安装失败的Microsoft.SqlServer. MSMQTask.dll情况出现在测试版中, 或者是由于未完全删除的测试版组件而导致安装失败。 4. 除此之外还有一些类似的问题都是与64位操作系统或者Clust er环境有关。 我认为以上的一些原因可以排除,看来又是Live Meeting的时候了,和微软工程师约定时间联机查找问题。 五.手工注册Microsoft.SqlServer. MSMQTask.dll 使用 regsvcs.exe应用程序工具注册.NET 服务 使用cmd执行过程如下: C:\WINDOWS\Microsoft.NET\ Framework\v2.0.50727>regsvcs. exe "C:\Program Files\Micr osoft SQL Server\90\DTS\Tasks\Microsoft. SqlServer.MSMQTask.dll" Microsoft(R) .NET Framework 服务安装实用工具版本 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved. 出现下列安装错误: 1: 要执行此任务,您必须具有管理凭据。 请与您的系统管理员联系以获得帮助。 2: 注册程序集“Microsoft.SqlServer. MSMQTask, Version=9.0.242.0, Culture=neutral, PublicKeyToken= 89845dcd8080cc91”失败。 3: 对注册表项“HKEY_CLASSES_ROOT\ Microsoft.SqlServer.Dts.Tasks. MessageQueueTask. DataFileMessage”的访问被拒绝。 分析结果: 这看起来是由于当前Windows用户在该注册表键值上没有足够 的权限造成的。经过研究类似案例,在某些情况下, 即使是Administrators组的用户也可能出现对这些键 值没有Full Control的情况。需要确认一下在这些注册表值上, Administrators组用户是否有Full Control。在注册表中右键点击注册表值-> 选择权限来查看及改变该值上的权限设置。 如果权限设置都正确的话,可以试着抓一个RegMon trace来看到底是不是注册表键值的权限问题导致这个错误。 看来问题终于找到了。 六.监控注册表 1. 运行RegMon工具,通过菜单Options-> Filter中设置Include list,把Regsvcs.exe加入Include list中。 2. 执行regsvcs.exe "C:\Program Files\Microsoft SQL Server\90\DTS\Tasks\Microsoft. SqlServer.MSMQTask.dll" 3. 在Regsvcs.exe执行失败停止后, 保存RegMon生成的log。 分析RegMon Trace。定位问题如下: 5484 17.98829079 RegSvcs.exe:3404 OpenKey HKCR\Microsoft.SqlServer.Dts. Tasks.MessageQueueTask. MessageQueueTask ACCESS DENIED NBCN-ZZ\Administrator 5488 17.98927116 RegSvcs.exe:3404 CreateKey HKCR\Microsoft.SqlServer.Dts. Tasks.MessageQueueTask. MessageQueueTask ACCESS DENIED NBCN-ZZ\Administrator 5489 17.98955727 RegSvcs.exe:3404 CreateKey HKCR\Microsoft.SqlServer.Dts. Tasks.MessageQueueTask. MessageQueueTask ACCESS DENIED NBCN-ZZ\Administrator 6431 19.89454460 RegSvcs.exe:3404 OpenKey HKCR\Microsoft.SqlServer.Dts. Tasks.MessageQueueTask. MessageQueueTask ACCESS DENIED NBCN-ZZ\Administrator 以上其实就是我一开始使用RegMon 时应该发现的问题,结果到现在才发现。 从这几条记录来看,问题是对注册表值HKCR\ Microsoft.SqlServer.Dts.Tasks. MessageQueueTask. MessageQueueTask的权限问题。 而RegSvcs进程在遇到这些权限问题之后,并没有马上终止, 还有一些别的注册表活动。我查看了注册表HKEY_ CLASSES_ROOT\Microsoft. SqlServer.Dts.Tasks. MessageQueueTask. DataFileMessage项的权限, Administrators组没有“完全控制”和“读取” 权限,对其进行授权。重新运行注册, 结果又报另外的注册表项没有权限,对其进行添加,直到注册成功, 以下是输出结果。 C:\WINDOWS\Microsoft.NET\ Framework\v2.0.50727>regsvcs. exe "C:\Program Files\Micr osoft SQL Server\90\DTS\Tasks\Microsoft. SqlServer.MSMQTask.dll" Microsoft(R) .NET Framework 服务安装实用工具版本 2.0.50727.42 Copyright (c) Microsoft Corporation. All rights reserved. 正在自动将“Microsoft.SqlServer. ManagedDTS, Version=9.0.242.0, Culture=neutral, PublicKeyToken= 89845dcd8080cc91”导出为“C:\ WINDOWS\assembly\GAC_MSIL\ Microsoft. SqlServer.ManagedDTS\9.0.242. 0__89845dcd8080cc91\Microsoft. SqlServer.ManagedDTS. tlb”。 警告: 程序集未声明 ApplicationAccessControl 属性。默认情况下启用应用程序安全性。 已安装的程序集: 程序集: C:\Program Files\Microsoft SQL Server\90\DTS\Tasks\Microsoft. Sql Server.MSMQTask.dll 应用程序: Microsoft.SqlServer.MSMQTask TypeLib: C:\Program Files\Microsoft SQL Server\90\DTS\Tasks\Microsoft. Sq lServer.MSMQTask.tlb C:\WINDOWS\Microsoft.NET\ Framework\v2.0.50727> 修改授权的相关注册表项如下: HKEY_CLASSES_ROOT\Microsoft. SqlServer.Dts.Tasks. MessageQueueTask. MessageQueueTask HKEY_CLASSES_ROOT\Microsoft. SqlServer.Dts.Tasks. MessageQueueTask. EncryptionAlgorithmWrapper HKEY_CLASSES_ROOT\Microsoft. SqlServer.Dts.Tasks. MessageQueueTask. ServCompMQTask HKEY_CLASSES_ROOT\Microsoft. SqlServer.Dts.Tasks. MessageQueueTask.Formatter 再次运行“dcomcnfg”,打开系统组件服务。 展开控制台根目录->组件服务->计算机->我的电脑-> COM+应用程序节点,发现Microsoft. SqlServer.MSMQTask节点,该COM+ 服务已经安装成功。

❺ Poor Man's T-SQL Formatter如何在sublime中使用

Poor Man's T-SQL Formatter。该工具用于格式化SQL语句,具有简单、强大、免费的特点,该工具一般是作为SSMS、Notepad++ 、VS Code 等SQL编辑器的插件安装使用。当SQL语句中含有中文的时,UTF8编码的SQL格式化时会报错或乱码,解决办法是:将编码 转为ANSI即可。修改配置项,修改内容为:
"php_path": "Data\\CodeFormatter\\php\\php.exe",
php_path是php.exe文件路径,路径可以是相对路径当然也可以是绝对路径,用相对路径是为了在配置好sublime后将其整个文件夹打包带走在其他电脑直接使用无需再次配置。

❻ 如何采用element-plus,基于codemirror6实现sql在线编辑器

js在线sql编辑器,下载后导入IDE工具中,在浏览器访问sql-editor-master/index.html ,效果如下(含括号高亮显示、显示折叠栏):
codeMirror官网https://codemirror.net/, 官网js/css资源文件,也可自行去官网下载,但是官网比较慢,需引入的核心页面代码:
<link rel="stylesheet" href="css/codemirror.css" />
<link rel="stylesheet" href="test/addon/fold/foldgutter.css">
<link rel="stylesheet" href="css/theme/dracula.css" />
<link rel="stylesheet" href="css/show-hint.css" />
<link rel="stylesheet" href="js/jquery-easyui/themes/default/easyui.css">
<link rel="stylesheet" href="js/layui/css/layui.css">

<link rel="stylesheet" href="css/index.css" />
<script type="text/javascript">var baseUrl ="";</script>
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery-easyui/jquery.easyui.min.js"></script>
<script type="text/javascript" src="js/jquery-easyui/locale/easyui-lang-zh_CN.js"></script>
<script type="text/javascript" src="js/editor/codemirror.js"></script>
<!-- 折叠栏显示 -->
<script type="text/javascript" src="test/addon/fold/foldcode.js"></script>
<script type="text/javascript" src="test/addon/fold/foldgutter.js"></script>
<script type="text/javascript" src="test/addon/fold/comment-fold.js"></script>
<!-- 括号高亮匹配 -->
<script type="text/javascript" src="test/addon/fold/matchbrackets.js"></script>

<script type="text/javascript" src="js/editor/sublime.js"></script>
<script type="text/javascript" src="js/editor/sql.js"></script>
<script type="text/javascript" src="js/editor/sql-hint.js"></script>
<script type="text/javascript" src="js/editor/show-hint.js"></script>
<!-- sql格式 -->
<script type="text/javascript" src="js/editor/formatting.js"></script>
<script type="text/javascript" src="js/editor/sql-formatter.min.js"></script>

<script type="text/javascript" src="js/layui/layui.js"></script>
<script type="text/javascript" src="js/index.js"></script>

<textarea id="code"></textarea>

核心js代码:

//根据DOM元素的id构造出一个编辑器
var editor=CodeMirror.fromTextArea(document.getElementById("code"),{
mode:"text/c-mysql", //实现Java代码高亮
lineNumbers:true,
matchBrackets: true, //括号高亮匹配
theme:"default",
keyMap: "default",
extraKeys:{"Tab":"autocomplete"},
hint: CodeMirror.hint.sql,
lineWrapping: true, //是否换行
foldGutter: true, //是否折叠
gutters: ["CodeMirror-linenumbers", "CodeMirror-foldgutter"], //添加行号栏,折叠栏
hintOptions: {
tables: tablewords

}

});

输入关键词提示等信息的配置:allWords.json

动态设置表字段等信息:

let tableWords = {"al": []};
let tableName = "tn_user";
tableWords[tableName].push("userId");
editor.setOption("hintOptions", {"tables": tableWords});
tableWords json格式如下:

"tableWords": {
"cp_sku": [
"skuid",
"cpbh",
"tcbh"
],
"user_info": [
"user_id",
"user_token",
"user_name",
"user_type",
"password"
]
}

❼ sql select TRdate日期列 from table1 这个搜索出来的结果 是 YY-MM-DD hhmmss

Select Convert(varchar(30),TRdate,111) date1 from table1

解释如下
Convert(varchar(30),TRdate,111) ,
第一个char型类型,第二个参数时间列名,111是时间格式编号。

你想要哪种格式都可在下表找到对应的编号就行

Style(4位表示年份) 输入输出格式
100 mon dd yyyy hh:miAM(或PM)
101 mm/dd/yy
102 yymmdd
103 dd/mm/yy
104 ddmmyy
105 ddmmyy
106 dd mon yy
107 mon dd,yy
108 hh:mm:ss
109 mon dd yyyy hh:mi:ss:mmmmAM(或PM)
110 mmddyy
111 yy/mm/dd
112 yymmdd
113 dd mon yyyy hh:mi:ss:mmm(24小时制)
114 hh:mi:ss:mmm(24小时制)
120 yyyymmdd hh:mi:ss(24小时制)
121 yyyymmdd hh:mi:ss:mmm(24小时制)

❽ 从字符串转换日期和/或时间时,转换失败

SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date mytime=formatter.parse(要转换的时间格式必须和format一致);

❾ SQL 怎么查询每个人的第一条数据

select
mid ,content
from(
SELECT
mid ,content,
rank() over(ORDER BY content) as rank1
FROM tb_record) a
where a.rank1=1

❿ NotePad++中SQL语句分析插件吗

方法/步骤

  • 下载安装notepad++