sqlConvert v1.0(原)

本文介绍了一种实用的工具,能够帮助开发者轻松地在Delphi SQL和MSSQL SQL语句之间进行转换。通过具体的示例展示了如何调整SQL语句格式以适应不同的开发环境,并提供了快捷键操作指南。
使用说明

1、delphi_sql转换为mssql:

示例如下:

sql.add('select * from tb1');
sql.add(' where AutoId>0and CId= ''1''');

转换为:

select * from tb1
where AutoId>0and CId= '1'

实际实现的功能为:

a、双引号变单引号;b、 ');变空;c、sql.add('变空。

2、mssql转换为delphi_sql:

示例如下:

select * from tb1
where AutoId>0 and CId='1'

转换为:

sql.Add('select * from tb1');
sql.Add(' where AutoId>0 andCId= ''1''');

实际实现的功能为:

a、单引号变双引号;b、每行末加');;c、每行前加sql.add('。

备注:此功能仅支持100行内容,并剔除了空行。

3、delphi_debug_show

示例如下:

'select * from tb1'#$D#$A'where AutoId>0 and CId= '1' '#$D#$A

转换为:

select * from tb1
where AutoId>0 andCId = '1'

实际实现的功能为:

a、'#$D#$A'变空;b、'#$D#$A变空;c、第一个单引号变空。

热键使用

1、Ctrl + Shift + C 复制转换后语句

2、Ctrl + W 退出程序

3、Esc 退出程序

4、Ctrl + Shift +A 从剪切板粘贴到“需要转换语句”并执行命令“delphi_sql转换为mssql”,并将结果放到剪切板

5、Ctrl + Shift +S 从剪切板粘贴到“需要转换语句”并执行命令“mssql转换为delphi_sql”,并将结果放到剪切板

6、Ctrl + Shift +D 从剪切板粘贴到“需要转换语句”并执行命令“delphi_debug_show”,并将结果放到剪切板

7、Alt+R 当程序最小化时重新最大化
希望大家喜欢 :D
WITH ShiftCTE AS ( SELECT *, CASE WHEN shift = 1 THEN 'D-shift' WHEN shift = 2 THEN 'N-shift' ELSE '' END AS [AS Shift] FROM iPortal.dbo.kpi_indicator -- 新增过滤条件(在数据源头过滤提升性能) WHERE date BETWEEN '2025-03-01' AND '2025-03-10' -- 新增日期范围 AND shop = 'MRA2_AS' -- 新增车间过滤 ), KPICTE AS ( SELECT *, CASE WHEN kpi IN ('Trim-1', 'TRIM1') THEN 'Trim_1' ELSE kpi END AS [Input AS kpi] FROM ShiftCTE ), VolumeCTE AS ( SELECT *, CASE -- 保留条件中的shop判断(逻辑需要) WHEN CONVERT(date, date) = '2025-01-06' -- 特殊日期条件保留 AND shop = 'MRA2_AS' -- 虽然外层已过滤,但计算逻辑仍需判断 AND kpi = 'Trim_1' AND [AS Shift] = 'N-shift' THEN actual - 58 ELSE actual END AS Volume FROM KPICTE ), BOTCTE AS ( SELECT *, CASE -- BOT的特殊日期条件不受查询日期范围影响 WHEN YEAR(date) = 2025 AND MONTH(date) = 1 AND DAY(date) = 6 AND shift = 2 THEN 320 ELSE bot_target END AS [BOT Target] FROM KPICTE ) SELECT v.date, -- 明确来源 v.shift, -- 明确来源 SUM(v.Volume) * 1.0 / NULLIF(SUM(b.[BOT Target])/60.0, 0) AS JPH FROM VolumeCTE v JOIN BOTCTE b ON v.date = b.date AND v.shift = b.shift AND v.kpi = b.kpi WHERE v.[Input AS kpi] = 'Trim_1' AND v.business_operation_time <> 0 GROUP BY v.date, -- 与SELECT对应 v.shift; -- 与SELECT对应 在上面这个sql基础上计算过滤条件为date between ''2025-03-01" and ‘2025-03-10’ 以及shop为MRA2_AS时总的JPH,而不是展示每一天不同班次的
最新发布
03-28
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值