1、快速复制达梦表结构及数据方法1使用 CREATE TABLE … AS SELECTCTAS语句推荐--复制表结构数据CREATETABLEnew_tableASSELECT*FROMoriginal_table;--仅复制表结构不带数据CREATETABLEnew_tableASSELECT*FROMoriginal_tableWHERE12;方法2使用 CREATE TABLE … LIKE INSERT SELECT--复制表结构包含约束但不含索引CREATETABLEnew_tableLIKEoriginal_table;--复制数据INSERTINTOnew_tableSELECT*FROMoriginal_table;2、清空某一张表TRUNCATETABLEemployees;--清空 employees 表3、达梦数据将时间格式2024/03/20中的/换成-3.1. 若字段为字符串类型如 VARCHARUPDATE表名SET时间字段名REPLACE(时间字段名,/,-);3.2、若字段为日期类型如 DATEUPDATE表名SET时间字段名TO_DATE(REPLACE(TO_CHAR(时间字段名,yyyy/mm/dd), /, -), yyyy-mm-dd);4、现在有一个水果表达梦按照月份和类型统计每个月销售总数SELECTTO_CHAR(sale_date,YYYY-MM)ASmonth,--提取年月并格式化为YYYY-MMfruit_type,--水果类型SUM(quantity)AStotal_quantity--计算销售总数FROMfruit_sales--水果销售表GROUPBYTO_CHAR(sale_date,YYYY-MM),--按年月分组 fruit_type--按水果类型分组ORDERBYmonth,--按月份排序 fruit_type;--按水果类型排序5、达梦查询时间介于2025-01-01到2025-06-30之间的数据SELECT*FROM表名WHERE日期字段TO_DATE(2025-01-01, YYYY-MM-DD)AND日期字段TO_DATE(2025-07-01, YYYY-MM-DD);6、将字符串02或06使用达梦去除06.1. 使用LTRIM函数SELECT LTRIM(02, 0) FROM DUAL; -- 结果: 2 SELECT LTRIM(06, 0) FROM DUAL; -- 结果: 66.2. 使用REGEXP_REPLACE函数SELECT REGEXP_REPLACE(02, ^0, ) FROM DUAL; -- 结果: 2 SELECT REGEXP_REPLACE(06, ^0, ) FROM DUAL; -- 结果: 66.3. 使用CASE WHEN判断SELECT CASE WHEN LEFT(02, 1) 0 THEN SUBSTRING(02, 2) ELSE 02 END FROM DUAL; -- 结果: 26.4. 使用CAST函数如果字符串是数字SELECT CAST(02 AS INTEGER) FROM DUAL; -- 结果: 2 SELECT CAST(06 AS INTEGER) FROM DUAL; -- 结果: 67、MERGE INTO语法快速处理对应数据update idbatchMergeWithConditionparameterTypejava.util.Listforeach collectionlistitemitemindexindexseparator;MERGEINTOtarget_table tUSING(SELECT#{item.id}ASid,#{item.name}ASname,#{item.value}ASvalue,#{item.status}ASstatusFROMdual)sON(t.ids.id)WHENMATCHEDANDs.status1THENUPDATESETt.names.name,t.values.valueWHENNOTMATCHEDANDs.status1THENINSERT(id,name,value)VALUES(s.id,s.name,s.value)/foreach/update8、达梦添加常用数据索引的几种方式// 普通8.1、CREATE INDEX index_name ONtable_name(column_name);// 唯一8.2、CREATE UNIQUE INDEX index_name ONtable_name(column_name);// 复合8.3、CREATE INDEX index_name ONtable_name(column1,column2,...);9、一张表里面有水果苹果、香蕉、梨子各若干个有合格、不合格指标求各个水果的合格率。--达梦创建水果检测表CREATETABLEfruit_check(idINTIDENTITY(1,1)PRIMARYKEY,--自增主键 fruit_nameVARCHAR(20)NOTNULL,--水果名称 check_resultVARCHAR(10)NOTNULL--检测结果合格/不合格);--插入测试数据INSERTINTOfruit_check(fruit_name,check_result)VALUES(苹果,合格),(苹果,合格),(苹果,不合格),(香蕉,合格),(香蕉,不合格),(香蕉,不合格),(梨子,合格),(梨子,合格),(梨子,合格),(梨子,不合格);SELECTfruit_name,COUNT(*)total,SUM(CASEWHENcheck_result合格THEN1ELSE0END)ok_cnt,ROUND(SUM(CASEWHENcheck_result合格THEN1ELSE0END)/COUNT(*)*100,2)pass_rateFROMfruit_checkGROUPBYfruit_name;