动态SQL应用小列子

子查询入门|标量 / 行 / 列子查询,简化复杂查询 子查询(嵌套查询):在一个 SQL 内部嵌套另一个 SELECT 查询,先执行内层查询,把结果交给外层查询使用。主查询子查询子查询必须用( )包裹先子查询,后主查询返回一行一列(一个值:数字、字符串、日期)。返回一列多行(一列表数据),相当于一个值列表。返回一行多列,用于同时匹配多个字段的场景。子查询 = 查询嵌套查询,先内后外执行三大基础类型:标量:单行单列 → 用= > <列:单列多行 → 用行:单行多列 → 组合匹配平均值、最大值、动态列范围筛选、存在性判断多字段同时匹配。 阅读详情

 

呵呵,几乎成标题党了,今天要写个脚本查询7天内所有有登录玩家的数据,要求按注册日期统计,虽然是个简单的问题,但是关键是用户表有30个,分别是user0, user1......到user29 ,光是把它们UNION ALL起来,我都够郁闷了,你想象下脚本有多长吧,一大堆堆在那儿,光是复制都让你难以忍受。 

 

 

 呵呵,下面是我用动态SQL 改写的,呵呵,简洁多了

DECLARE @cmdText VARCHAR(8000);
DECLARE @userIndex INT;
SET @cmdText = '';
SET @userIndex = 0;
WHILE @userIndex <30
BEGIN
    IF (@userIndex != 29)
            SELECT @cmdText = @cmdText + 'SELECT Id,Create_Time, Last_Login_Time FROM ' 
                         + '  dbo.user' + CONVERT(VARCHAR,@userIndex) 
                         + '  UNION ALL' + CHAR(10); --换行
    ELSE
            SELECT @cmdText = @cmdText + 'SELECT Id,Create_Time, Last_Login_Time FROM '
                         +  'dbo.user' + CONVERT(VARCHAR,@userIndex) ;
    
    SET @userIndex = @userIndex + 1;
END;

SELECT @cmdText = 'SELECT CONVERT(VARCHAR(10),T.Create_Time, 120) AS Create_Time ,COUNT(0) AS RecordNum FROM (' 
            + @cmdText + 
            ') T WHERE DATEDIFF(d,Last_Login_Time,GETDATE()) < 7 GROUP BY CONVERT(VARCHAR(10),Create_Time, 120) ';
--PRINT     @cmdText    
EXEC (@cmdText);

 

这里得提提 CHAR(10)这个,个人感觉非常有用,刚开始的时候,没有加换行符,把这段脚本输出的时候,格式比较乱,很多时候,复杂的动态脚本,都需要输出,查看,调试一番, 就像PRINT     @cmdText   那样,如果输出格式比较乱,自己调整需要花费一定功夫,在写的时候,如果注意脚本格式了,那就要省很多功夫了。而且也有助于以后维护,修改。

 

SSM框架学习-MyBatis篇 动态SQL(trim、foreach、bind)以及sql标签的使用 SSM框架学习-MyBatis篇 动态SQL(trim、foreach、bind)以及sql标签的使用 在学习这些标签之前,还要if和choose,这些都是动态SQL元素里面的重要元素。 trim篇: 在实际的项目需求中,有很多字段数值为空,这时需要我们采取有效的方式避免空值插入数据库。 比如:插入一条用户信息,空值不允许插入,或者查找用户,不传入完全信息即可查找。 但是在任意的传值中会... 阅读详情

相关推荐

AI数字人:口播与唇形同步的福音,支持本地部署/批量生成/口齿清晰

你也可以直接输入语音,虚拟化身会根据语音的节奏和语调,同步做出相应的动作和表情,表现更加生动。不过这依然是个值得关注的工具。借助先进的 AI 算法,Heygem 高精度捕捉五官、轮廓等特征,构建逼真的虚拟模型。同时,它还能克隆语音,捕捉人声的细微特征,支持多种语音参数设置,打造高度相似的音色效果。打开设置,调整镜像存储位置,镜像文件比较大70~80G,选择合适的盘,设置完成后点击“Apply & Restart”。数字人视频画面与声音高度同步,口型匹配自然流畅,智能优化音视频效果,带来极佳的视听体验。

m0_72580657的博客 5862

SQL日期操作

select CONVERT(varchar, getdate(), 120 )‘getdate()’改为时间字段名‘createtime’ 再重命名新加列(Select Name AS UName from Users)例如 select convert(varchar(11),createtime,120) as Ndate from UserSselect CONVERT(varchar

时间就像一张网,你撒在哪里,你的收获就在哪里 907

Windows环境Oracle19C安装与配置全攻略

本文详细介绍了在Windows环境下安装与配置Oracle19C数据库的完整流程,包括环境准备、安装步骤、网络配置、客户端工具设置及常见问题解决方案。特别针对Windows 10和Windows Server 2016及以上版本提供了优化建议,帮助用户高效完成Oracle19C的部署与维护。

weixin_28455801的博客 487

sql server笔记

CONVERT(varchar(10),createtime,120)                                 --将日期转换成varhcar类型,120 指格式:yyyy-mm-dd left(replace(convert(varchar(6),a.OrderDate,112),'-',''),6)         --提取日期字段中YYYYMM len(Ctrip

toger_it的博客 524

保姆级避坑指南:在openEuler 22.03 LTS上用kubeadm 1.32.2部署K8s集群(含阿里云镜像加速)

本文提供在openEuler 22.03 LTS上使用kubeadm 1.32.2部署Kubernetes集群的详细指南,涵盖系统准备、容器运行时适配、kubeadm配置及集群初始化等关键步骤。特别针对openEuler系统的特殊性,解决软件源配置、cri-dockerd编译安装、阿里云镜像加速等常见问题,帮助用户高效完成K8s集群部署。

weixin_28312391的博客 274

Miniforge3部署教程,完美替代Anaconda3

大背景不介绍了,哎!直接上教程!

zzy_ucas的博客 1万+

sqlServer日期时间格式化

未经全部验证,原地址 https://blog.youkuaiyun.com/lyelyelye/article/details/78799313 字符串转日期时间: convert(datetime,‘2017-12-12 00:00:01’, 20) 日期时间转字符串: Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Sel...

WY001的博客 1812

Cisco Packet Tracert 无线路由器配置

Cisco Packet Tracert 无线路由器配置

yushan_caoyu的博客 2万+

sql server-Convert DateTime 格式的转换资料

Sqlserver中经常要操作一些时间类型的字段转换,我又不太记得住,所以搜集了以下的一些SqlserverConvert DateTime相关的资料发表在自己的小站里,方便自己以后要用的时候寻找,望对大家也有帮助. 将sqlserver中table表的[datetime]字段值‘2007-11-07 16:41:35.033’ 改为‘2007-11-07 00:00:00‘去除了时分秒.[da...

weixin_30421809的博客 436

计算机网络期末复习提纲(全知识点总结)

计算机网络期末复习提纲全知识点总结第一章 概述1.基本概念- 链路,结点,协议和服务,实体和对等实体,各层PDU- C/S模式,B/S模式,P2P模式- LAN,WAN,MAN,PAN的划分- 网络性能参数:速率,带宽,吞吐量,时延,往返时间,信道利用率2.互联网的组成(边缘部分与核心部分的作用)3.电路交换与分组交换,数据报交换和虚电路交换的特点4.TCP/IP体系结构,数据的封装与解封装第二章 物理层1.信号编码:不归零编码,曼切斯特编码2.影响信号失真程度的因素3.传输介质:双绞线,同轴电缆,光纤(单

mcyuuji的博客 8万+

别再一个个BAPI调了!用CVI_EI_INBOUND_MAIN一次性搞定SAP BP主数据(附完整ABAP代码)

本文详细介绍了如何使用SAP标准函数CVI_EI_INBOUND_MAIN高效维护业务伙伴(BP)主数据,替代传统的多BAPI调用方式。通过完整ABAP代码示例,展示了如何一站式处理供应商、客户、公司代码等所有视图的创建与更新,提升数据一致性和开发效率。

weixin_29204205的博客 300

动态SQL应用小列子 (转)

呵呵,几乎成标题党了,今天要写个脚本查询7天内所有有登录玩家的数据,要求按注册日期统计,虽然是个简单的问题,但是关键是用户表有30个,分别是user0, user1......到user29 ,光是把它们UNION ALL起来,...

cuanji3287的博客 79

[Dify实战] 招投标标书智能生成:模板套用 + 风险校验

摘要:本文提出基于Dify构建AI标书生成工作流,解决传统标书撰写中内容重复(80%复用率)、人工修改效率低、风险检查易出错等痛点。方案包含三大核心模块:1)智能生成(基于模板自动填充项目信息);2)风险校验(AI自动检查废标风险点);3)多角色协作。通过拆分标书结构、设置详细Prompt、建立风险检查清单,实现从"人工撰写"到"参数化自动生成+AI审核"的转型,最终输出标准格式文档并支持企业系统集成。典型应用场景下,系统能自动生成技术方案并识别关键风险(如支付安全合

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 828

org.apache.ibatis.jdbc.SQL 动态sql 列子

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_33974433的博客 4223

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

Mysql动态sql之mybatis动态sql

mysql动态sql想必大家都了解了 举个列子:现在有如下sql语句 select id,name from animals where id = 1 and name ="老虎" 很简单的sql语句但是在我们进行传参时 加入id 赋值为null 或者 name 为 null 那么sql语句就会报错,那么这个时候就需要用到伟大的mybatis了,在日常的开发中mybatis这个半持久化框架的好处不用多说,直接上代码。 if 是我们比较常见的写法 <select id="fin...

weixin_46118339的博客 1080

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

Mybatis 动态添加多条数据SQL

1. 配置文件中一定要添加allowMultiQueries=true 的作用: 1.可以在sql语句后携带分号,实现多语句执行。 2.可以执行批处理,同时发出多个SQL语句。 2. 动态SQL语句列子: <insert id="insertSellVipPersonList" parameterType="java.util.List"> <foreach collection="list" item="item"> ...

qq_38795959的博客 2650

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

SQL动态查询并返回结果

今天做了一个根据动态生成表明来查询相关结果的存储过程,由于表名是动态生成,因此使用了SQL Server的动态查询,函数sp_executesql。写篇博客已记录开发过程中遇到的问题,以备查询。 需要统计的表是根据规则动态生成,格式如下: 因此在这里考虑使用SQL提供的sp_executesql 函数,它可以执行动态的修改,查询,删除功能。该函数官方详细文档,如下: Sp_executesql:执行可以多次重复使用或动态生成的 Transact-SQL 语句或批处理。Transact-SQL 语.

yanglei0620的专栏 2571

SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果

SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果( exec sp_execute        关 键 词:   在编写sql语句或存储过程中,难免会有碰到语句中表名或某一字段名不确定,要根据条件来,这时,我们可考虑用SQL 提供的sp_executesql 函数,,他可执行动态的修改,删除,查询功能,至于此函数的详细解释可到sql帮助文档中去查看...

weixin_34015336的博客 5820

SQL一些常用列子

---=========================================================================1:SQLServer2005 Pivot 转置使用动态列  *****--==========================================================================if exists

xiaoliangaccp的专栏 1016

SQL server 动态查询(表名或字段动态),并且获取想得到的返回值结果( exec sp_executesql )

   在编写sql语句或存储过程中,难免会有碰到语句中表名或某一字段名不确定,要根据条件来,这时,我们可考虑用SQL 提供的sp_executesql 函数,,他可执行动态的修改,删除,查询功能,至于此函数的详细解释可到sql帮助文档中去查看,下面我将举一个动态查询的列子,包括表名及想查询的字段均不确定:tab:           (ID int)  (A numeric(9,2))  (B

啊恒的专栏 5939

ibatis的动态sql

1.介绍 1 <select id="getUsers" 2 3 parameterClass="user" 4 5 resultMap="get-user-result"> 6 7 select 8 9 id, 10 11 name, 12 13 sex 14 15 from t_user 16 17 <...

weixin_30617695的博客 141

mysql 动态查询表_使用动态表的MySQL列子查询

我试图从相关表中提取信息,具体取决于某列中存在的信息 . 在这种情况下,它的列 Page . type 并且理想情况下我喜欢用字符串创建表名然后查询该表的CONCAT .有没有办法做这样的子查询?也许我需要将此子查询嵌套为LEFT JOIN .或者,这种类型的动态行为只能作为存储过程完成吗?关键是我们有各种类型的元数据与我们的SiteManagerPage相关联 . 这种数据在类型和列结构方...

weixin_35886058的博客 827

sql server动态行专列pivot的in子查询

对于数据库行专列的方法 可以用 pivot pivot的三个参数 当作转变后值得列 for 要转成列得列名 in 转变后的列名字 动态数据的话没有办法确定几行 几列 名字也是根据动态内容变得 所以需要先用一个子查询查到转变后得列名字 也就是没转之前 所有行中 要转变列得列内容 例如: 要转成列得name 你得先知道原来name都有哪些 有名字1名字2 然后转后得列名 就...

Marzlam的博客 7038
上一篇: SQL性能调优实践——SELECT COUNT
下一篇: String.Format 格式化货币的小问题
kerrycode
博客等级 码龄17年 6粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值