分页 ,去姓名首字母

 

 

 

 

 

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

 

 

--/*----- 对数据进行了2分处理使查询前半部分数据与查询后半部分数据性能相同 -------*/

 

 --declare  @pagecount int declare @counts int

 --exec proc_fun_pagination 'sys_user','*',2,2,'userid',0,null,'userid',0--,@pagecount output,@counts output

 

ALTER PROCEDURE [dbo].[proc_fun_Pagination] 

 ( 

 @tblName     nvarchar(200),        ----要显示的表或多个表的连接 

 @fldName     nvarchar(500) = '*',    ----要显示的字段列表 

 @pageSize    int = 10,        ----每页显示的记录个数 

 @page        int = 1,        ----要显示那一页的记录 

 @fldSort    nvarchar(200) = null,    ----排序字段列表或条件 

 @Sort        bit = 0,        ----排序方法,0为升序,1为降序(如果是多字段排列Sort指代最后一个排序字段的排列顺序(最后一个排序字段不加排序标记)--程序传参如:' SortA Asc,SortB Desc,SortC ') 

 @strCondition    nvarchar(1000) = null,    ----查询条件,不需where 

 @ID        nvarchar(150),        ----主表的主键 

 @Dist                 bit = 0,           ----是否添加查询字段的 DISTINCT 默认0不添加/1添加 

 @pageCount    int = 1 output,            ----查询结果分页后的总页数 

 @Counts    int = 1 output                ----查询到的记录数 

 ) 

 AS 

 SET NOCOUNT ON 

 Declare @sqlTmp nvarchar(1000)        ----存放动态生成的SQL语句 

 Declare @strTmp nvarchar(1000)        ----存放取得查询结果总数的查询语句 

 Declare @strID     nvarchar(1000)        ----存放取得查询开头或结尾ID的查询语句 

 

 Declare @strSortType nvarchar(10)    ----数据排序规则A 

 Declare @strFSortType nvarchar(10)    ----数据排序规则B 

 

 Declare @SqlSelect nvarchar(50)         ----对含有DISTINCT的查询进行SQL构造 

 Declare @SqlCounts nvarchar(50)          ----对含有DISTINCT的总数查询进行SQL构造 

 

 --declare @timediff datetime  --耗时测试时间差 

 --select @timediff=getdate() 

 

 if @Dist  = 0 

 begin 

     set @SqlSelect = 'select ' 

     set @SqlCounts = 'Count(*)' 

 end 

 else 

 begin 

     set @SqlSelect = 'select distinct ' 

     set @SqlCounts = 'Count(DISTINCT '+@ID+')' 

 end 

 

 

 if @Sort=0 

 begin 

     set @strFSortType=' ASC ' 

     set @strSortType=' DESC ' 

 end 

 else 

 begin 

     set @strFSortType=' DESC ' 

     set @strSortType=' ASC ' 

 end 

 

 

 

 --------生成查询语句-------- 

 --此处@strTmp为取得查询结果数量的语句 

if @strCondition is null or @strCondition=''     --没有设置显示条件 

 begin 

     set @sqlTmp =  @fldName + ' From ' + @tblName 

     set @strTmp = @SqlSelect+' @Counts='+@SqlCounts+' FROM '+@tblName 

     set @strID = ' From ' + @tblName 

 end 

 else 

 begin 

     set @sqlTmp = + @fldName + 'From ' + @tblName + ' where (1>0) ' + @strCondition 

     set @strTmp = @SqlSelect+' @Counts='+@SqlCounts+' FROM '+@tblName + ' where (1>0) ' + @strCondition 

     set @strID = ' From ' + @tblName + ' where (1>0) ' + @strCondition 

 end 

 

 ----取得查询结果总数量----- 

 exec sp_executesql @strTmp,N'@Counts int out ',@Counts out 

 declare @tmpCounts int 

 if @Counts = 0 

     set @tmpCounts = 1 

 else 

     set @tmpCounts = @Counts 

 

     --取得分页总数 

     set @pageCount=(@tmpCounts+@pageSize-1)/@pageSize 

 

     /**//**当前页大于总页数 取最后一页**/ 

     if @page>@pageCount 

         set @page=@pageCount 

 

     --/*-----数据分页2分处理-------*/ 

     declare @pageIndex int --总数/页大小 

     declare @lastcount int --总数%页大小  

 

     set @pageIndex = @tmpCounts/@pageSize 

     set @lastcount = @tmpCounts%@pageSize 

     if @lastcount > 0 

         set @pageIndex = @pageIndex + 1 

     else 

         set @lastcount = @pagesize 

 

     --//***显示分页 

     if @strCondition is null or @strCondition=''     --没有设置显示条件 

     begin 

         if @pageIndex<2 or @page<=@pageIndex / 2 + @pageIndex % 2   --前半部分数据处理 

             begin  

                 if @page=1 

                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName                         

                         +' order by '+ @fldSort +' '+ @strFSortType 

                 else 

                 begin 

                     if @Sort=1 

                     begin                     

                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' where '+@ID+' <(select min('+ @ID +') from ('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-1) as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' order by '+ @fldSort +' '+ @strFSortType+') AS TBMinID)' 

                         +' order by '+ @fldSort +' '+ @strFSortType 

                     end 

                     else 

                     begin 

                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' where '+@ID+' >(select max('+ @ID +') from ('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-1) as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' order by '+ @fldSort +' '+ @strFSortType+') AS TBMinID)' 

                         +' order by '+ @fldSort +' '+ @strFSortType  

                     end 

                 end     

             end 

         else 

             begin 

             set @page = @pageIndex-@page+1 --后半部分数据处理 

                 if @page <= 1 --最后一页数据显示                 

                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@lastcount as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType  

                 else 

                     if @Sort=1 

                     begin 

                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' where '+@ID+' >(select max('+ @ID +') from('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' order by '+ @fldSort +' '+ @strSortType+') AS TBMaxID)' 

                         +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType 

                     end 

                     else 

                     begin 

                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' where '+@ID+' <(select min('+ @ID +') from('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' order by '+ @fldSort +' '+ @strSortType+') AS TBMaxID)' 

                         +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType  

                     end 

             end 

     end 

 

     else --有查询条件 

     begin 

         if @pageIndex<2 or @page<=@pageIndex / 2 + @pageIndex % 2   --前半部分数据处理 

         begin 

                 if @page=1 

                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName                         

                         +' where 1=1 ' + @strCondition + ' order by '+ @fldSort +' '+ @strFSortType 

                 else if(@Sort=1) 

                 begin                     

                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                        +' where '+@ID+' <(select min('+ @ID +') from ('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-1) as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' where (1=1) ' + @strCondition +' order by '+ @fldSort +' '+ @strFSortType+') AS TBMinID)' 

                         +' '+ @strCondition +' order by '+ @fldSort +' '+ @strFSortType 

                 end 

                 else 

                 begin 

                     set @strTmp=@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                        +' where '+@ID+' >(select max('+ @ID +') from ('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-1) as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' where (1=1) ' + @strCondition +' order by '+ @fldSort +' '+ @strFSortType+') AS TBMinID)' 

                         +' '+ @strCondition +' order by '+ @fldSort +' '+ @strFSortType  

                 end            

         end 

         else 

         begin  

             set @page = @pageIndex-@page+1 --后半部分数据处理 

             if @page <= 1 --最后一页数据显示 

                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@lastcount as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                        +' where (1=1) '+ @strCondition +' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType                      

            else if(@Sort=1) 

                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' where '+@ID+' >(select max('+ @ID +') from('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +' '+ @ID +' from '+@tblName 

                         +' where (1=1) '+ @strCondition +' order by '+ @fldSort +' '+ @strSortType+') AS TBMaxID)' 

                         +' '+ @strCondition+' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType     

             else 

                     set @strTmp=@SqlSelect+' * from ('+@SqlSelect+' top '+ CAST(@pageSize as VARCHAR(4))+' '+ @fldName+' from '+@tblName 

                         +' where '+@ID+' <(select min('+ @ID +') from('+ @SqlSelect+' top '+ CAST(@pageSize*(@page-2)+@lastcount as Varchar(20)) +' '+ @ID +' from '+@tblName 

                        +' where (1=1) '+ @strCondition +' order by '+ @fldSort +' '+ @strSortType+') AS TBMaxID)' 

                         +' '+ @strCondition+' order by '+ @fldSort +' '+ @strSortType+') AS TempTB'+' order by '+ @fldSort +' '+ @strFSortType             

         end     

     end 

 

 ------返回查询结果----- 

 exec sp_executesql @strTmp 

 --select datediff(ms,@timediff,getdate()) as 耗时 

 --print @strTmp 

 SET NOCOUNT OFF 

 

 

 

 

 

 

 

--------------------------------

 

 

 

 

set ANSI_NULLS ON

set QUOTED_IDENTIFIER ON

go

 

 

create FUNCTION [dbo].[fun_getPY]   

(   

    @str NVARCHAR(4000)   

)   

RETURNS NVARCHAR(4000)   

AS  

BEGIN  

    DECLARE @word NCHAR(1),@PY NVARCHAR(4000)   

    SET @PY=''  

    WHILE len(@str)>0   

    BEGIN  

        SET @word=left(@str,1)   

        SET @PY=@PY+(CASE WHEN unicode(@word) BETWEEN 19968 AND 19968+20901   

        THEN (SELECT TOP 1 PY FROM (   

        SELECT 'A' AS PY,N'驁' AS word   

        UNION ALL SELECT 'B',N'簿'  

        UNION ALL SELECT 'C',N'錯'  

        UNION ALL SELECT 'D',N'鵽'  

        UNION ALL SELECT 'E',N'樲'  

        UNION ALL SELECT 'F',N'鰒'  

        UNION ALL SELECT 'G',N'腂'  

        UNION ALL SELECT 'H',N'夻'  

        UNION ALL SELECT 'J',N'攈'  

        UNION ALL SELECT 'K',N'穒'  

        UNION ALL SELECT 'L',N'鱳'  

        UNION ALL SELECT 'M',N'旀'  

        UNION ALL SELECT 'N',N'桛'  

        UNION ALL SELECT 'O',N'漚'  

        UNION ALL SELECT 'P',N'曝'  

        UNION ALL SELECT 'Q',N'囕'  

        UNION ALL SELECT 'R',N'鶸'  

        UNION ALL SELECT 'S',N'蜶'  

        UNION ALL SELECT 'T',N'籜'  

        UNION ALL SELECT 'W',N'鶩'  

        UNION ALL SELECT 'X',N'鑂'  

        UNION ALL SELECT 'Y',N'韻'  

        UNION ALL SELECT 'Z',N'咗'  

        ) T    

        WHERE word>=@word COLLATE Chinese_PRC_CS_AS_KS_WS    

        ORDER BY PY ASC) ELSE @word END)   

        SET @str=right(@str,len(@str)-1)   

    END  

    RETURN @PY   

END

 

 

select dbo.fun_getPY('徐希望')

安全帽与口罩检测数据集 一、基础信息 数据集名称:安全帽与口罩检测数据集 图片数量: - 训练集:1690张图片 - 验证集:212张图片 - 测试集:211张图片 - 总计:2113张实际场景图片 分类类别: - HelmetHelmet:戴安全帽的人员,用于安全防护场景的检测。 - personwithmask:戴口罩的人员,适用于公共卫生监测。 - personwith_outmask:未戴口罩的人员,用于识别未遵守口罩佩戴规定的情况。 标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。 数据格式:JPEG/PNG图片,来源于实际监控和场景采集,细节清晰。 二、适用场景 工业安全监控系统开发: 数据集支持目标检测任务,帮助构建自动检测人员是否佩戴安全帽的AI模型,适用于建筑工地、工厂等环境,提升安全管理效率。 公共卫生管理应用: 集成至公共场所监控系统,实时监测口罩佩戴情况,为疫情防控提供自动化支持,辅助合规检查。 智能安防与合规检查: 用于企业和机构的自动化安全审计,减少人工干预,提高检查准确性和响应速度。 学术研究与AI创新: 支持计算机视觉目标检测领域的研究,适用于安全与健康相关的AI模型开发和论文发表。 三、数据集优势 精准标注与实用性: 每张图片均经过标注,边界框定位准确,类别定义清晰,确保模型训练的高效性和可靠性。 场景多样性与覆盖性: 包含安全帽和口罩相关类别,覆盖工业、公共场所以及多种实际环境,样本丰富,提升模型的泛化能力和适应性。 任务适配性强: 标注兼容主流深度学习框架(如YOLO),可直接用于目标检测任务,便于快速集成和部署。 实际应用价值突出: 专注于工业安全和公共健康领域,为自动化监控、合规管理以及疫情防护提供可靠数据支撑,具有较高的社会和经济价值。
内容概要:本文围绕FOC电机控制代码实现与调试技巧在计算机竞赛中的应用,系统阐述了从基础理论到多场景优化的完整技术链条。文章深入解析了磁链观测器、前馈控制、代码可移植性等关键概念,并结合FreeRTOS多任务调度、滑动窗口滤波、数据校验与热仿真等核心技巧,展示了高实时性与稳定性的电机控制系统设计方法。通过服务机器人、工业机械臂、新能源赛车等典型应用场景,论证了FOC在复杂系统协同中的关键技术价值。配套的千行级代码案例聚焦分层架构与任务同步机制,强化工程实践能力。最后展望数字孪生、低代码平台与边缘AI等未来趋势,体现技术前瞻性。; 适合人群:具备嵌入式开发基础、熟悉C语言与实时操作系统(如FreeRTOS)的高校学生或参赛开发者,尤其适合参与智能车、机器人等综合性竞赛的研发人员(经验1-3年为佳)。; 使用场景及目标:① 掌握FOC在多任务环境下的实时控制实现;② 学习抗干扰滤波、无传感器控制、跨平台调试等竞赛实用技术;③ 提升复杂机电系统的问题分析与优化能力; 阅读建议:此资源强调实战导向,建议结合STM32等开发平台边学边练,重点关注任务优先级设置、滤波算法性能权衡与观测器稳定性优化,并利用Tracealyzer等工具进行可视化调试,深入理解代码与系统动态行为的关系。
【场景削减】拉丁超立方抽样方法场景削减(Matlab代码实现)内容概要:本文介绍了基于拉丁超立方抽样(Latin Hypercube Sampling, LHS)方法的场景削减技术,并提供了相应的Matlab代码实现。该方法主要用于处理不确定性问题,特别是在电力系统、可再生能源等领域中,通过对大量可能场景进行高效抽样并削减冗余场景,从而降低计算复杂度,提高优化调度等分析工作的效率。文中强调了拉丁超立方抽样在保持样本代表性的同时提升抽样精度的优势,并结合实际科研背景阐述了其应用场景与价值。此外,文档还附带多个相关科研方向的Matlab仿真案例和资源下载链接,涵盖风电、光伏、电动汽车、微电网优化等多个领域,突出其实用性和可复现性。; 适合人群:具备一定Matlab编程基础,从事电力系统、可再生能源、优化调度等相关领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于含高比例可再生能源的电力系统不确定性建模;②用于风电、光伏出力等随机变量的场景生成与削减;③支撑优化调度、风险评估、低碳运行等研究中的数据预处理环节;④帮助科研人员快速实现LHS抽样与场景削减算法,提升仿真效率与模型准确性。; 阅读建议:建议读者结合文中提供的Matlab代码进行实践操作,理解拉丁超立方抽样的原理与实现步骤,并参考附带的其他科研案例拓展应用思路;同时注意区分场景生成与场景削减两个阶段,确保在实际项目中正确应用该方法。
道路坑洞目标检测数据集 一、基础信息 • 数据集名称:道路坑洞目标检测数据集 • 图片数量: 训练集:708张图片 验证集:158张图片 总计:866张图片 • 训练集:708张图片 • 验证集:158张图片 • 总计:866张图片 • 分类类别: CirEllPothole CrackPothole IrrPothole • CirEllPothole • CrackPothole • IrrPothole • 标注格式:YOLO格式,包含边界框和类别标签,适用于目标检测任务。 • 数据格式:图片为常见格式(如JPEG/PNG),来源于相关数据采集。 二、适用场景 • 智能交通监控系统开发:用于自动检测道路坑洞,实现实时预警和维护响应,提升道路安全。 • 自动驾驶与辅助驾驶系统:帮助车辆识别道路缺陷,避免潜在事故,增强行驶稳定性。 • 城市基础设施管理:用于道路状况评估和定期检查,优化维护资源分配和规划。 • 学术研究与创新:支持计算机视觉在公共安全和交通领域的应用,推动算法优化和模型开发。 三、数据集优势 • 精准标注与类别覆盖:标注高质量,包含三种常见坑洞类型(CirEllPothole、CrackPothole、IrrPothole),覆盖不同形态道路缺陷。 • 数据多样性:数据集涵盖多种场景,提升模型在复杂环境下的泛化能力和鲁棒性。 • 任务适配性强:标注兼容主流深度学习框架(如YOLO),可直接用于目标检测任务,支持快速模型迭代。 • 实际应用价值:专注于道路安全与维护,为智能交通和城市管理提供可靠数据支撑,促进效率提升。
废物分类实例分割数据集 一、基础信息 数据集名称:废物分类实例分割数据集 图片数量: - 训练集:2,658张图片 - 验证集:316张图片 - 测试集:105张图片 - 总计:2,974张图片(训练集 + 验证集) 分类类别: - 电子产品(electronics) - 玻璃瓶(gbottle) - 口罩(mask) - 金属(metal) - 塑料袋(pbag) - 塑料瓶(pbottle) - 废物(waste) 标注格式:YOLO格式,包含多边形点坐标,适用于实例分割任务。 数据格式:JPEG图片,来源于实际场景,涵盖多种废物物品。 二、适用场景 智能废物分类系统开发: 数据集支持实例分割任务,帮助构建能够自动识别和分割废物物品的AI模型,辅助垃圾分类和回收管理。 环境监测与环保应用: 集成至智能垃圾桶或监控系统,提供实时废物识别功能,促进环保和资源回收。 学术研究与技术创新: 支持计算机视觉与环境保护交叉领域的研究,助力开发高效的废物处理AI解决方案。 教育与培训: 数据集可用于高校或培训机构,作为学习实例分割技术和AI在环境应用中实践的重要资源。 三、数据集优势 类别多样性与覆盖广: 包含7个常见废物和可回收物品类别,如电子产品、玻璃瓶、口罩、金属、塑料袋、塑料瓶和废物,涵盖日常生活中的多种物品,提升模型的泛化能力。 精准标注与高质量: 每张图片均使用YOLO格式进行多边形点标注,确保分割边界精确,适用于实例分割任务。 任务导向性强: 标注兼容主流深度学习框架,可直接用于实例分割模型的训练和评估。 实用价值突出: 专注于废物分类和回收管理,为智能环保系统提供关键数据支撑,推动可持续发展。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值