
SQL
X_ABU
学无涯,健康快乐最重要
展开
-
关于Oracle根据累计值终止查询
昨天有个朋友遇到一个问题:单据根据创建时间倒序排序累计单据金额等于或者超过1000时停止查询,返回查出来的数据然后我提供了一个mysql的方式,但是他说他使用的是Oracle的数据库,尴尬!Mysql的实现方法模拟一个场景通过序列号倒序排序累计数字字段,当累计和大于等于100时停止查询提供表数据如下:这里通过over函数实现逐行累计;SELECT T1.* FROM ( SELECT ID, NUM, sum( NUM ) over ( ORDER BY "INDEX" .原创 2021-07-21 14:53:04 · 647 阅读 · 0 评论 -
关于MySql根据累计值终止查询
今天有个朋友遇到一个问题:单据根据创建时间倒序排序累计单据金额等于或者超过1000时停止查询,返回查出来的数据当时我没有这样的表,于是我就用现成的一张表,设计了如下的场景,理论一样有这样的业务场景:用户表根据最后修改时间倒序排序;然后从上往下累计年龄累计,当值超过或等于100时停止。首先有如下的表:然后使用@参数保存累计的值,通过where来判断结果获取值,sql如下SELECT T1.id, T1.num, T1.NAME, T1.age, T1.last_updat.原创 2021-07-20 21:23:36 · 947 阅读 · 0 评论 -
oracle的varchar2和mysql的varchar字符串长度计算
1、oracle的varcher2的计算单位是字节,mysql的varchar的计算单位是字符;2、在utf-8下oracle的vachar2保存一个汉字要3个字节,mysql的varchar需要一个字符;3、在保存数字和字母的时候oracle的vachar2占一个字节,mysql的varchar需要一个字符。下面测试:select length('你好'),char_length('你好'); -- 前一个计算字节长度,后一个计算字符长度select length('hello!'),char_原创 2020-07-07 19:18:10 · 2503 阅读 · 1 评论 -
Oracle在Mybatis中获取序列的值
Mapper传入序列名称获取,这里使用$符号拼接 <select id="getSeqByName" parameterType="string" resultType="long"> SELECT ${value}.nextval FROM DUAL </select>javamapper 接口接收序列名称Long getSeqByName(@Param("value") String value);server 使用方法Long i原创 2020-06-08 10:35:55 · 1190 阅读 · 0 评论 -
MySQL字符串拼接函数使用
文章目录测试数据1、CONCAT(直接拼接函数)2、CONCAT_WS(使用指定的分割符去拼接字符串)3、GROUP_CONCAT(将查询的数据先行直接连接,然后将列通过指定的分割符拼接)测试数据SELECT id,login_name,real_name FROM `iam_user` where id in (17,18,19)idlogin_namereal_name...原创 2020-03-16 23:06:39 · 510 阅读 · 0 评论 -
SQL SERVER数据库表ID自增,修改和插入ID
SQL SERVER数据库表ID自增,修改和插入ID为了不影响原来的递增值,可以使用sql的方式来操作,需要一个组合操作,先关闭递增设置,再操作执行DML语句,最后执行开启递增设置,完成。SET IDENTITY_INSERT TABLENAME ON --关闭INSERT INTO TABLENAME(ID,...) VALUES(...)UPDATE TABLENAME SET ...原创 2019-08-07 11:01:47 · 3464 阅读 · 0 评论 -
简述where下or的使用特点
简述where下or的使用特点数据库使用为SQL Server 在sql中 or 的作用是对它前面现有的约束条件做出转折,相当于一个新的where的开始,有一点就是和and的连用,这里的and只起到连接约束条件的作用。我们举例说明,首先实现查询:SELECT id, login_name, organization_id FROM iam_user查询结果:...原创 2019-07-18 17:30:05 · 1276 阅读 · 0 评论 -
SQL实现按照年月查询每天的日期
使用数据库MySQL应用场景:通过年月查询出这个月每一天的日期,特别是在报表开发时可以用到,用于显示每天的情况,按月查询一、梳理思路1、要按月输出所有的日期,我们就要知道每一天的号数,现在我们要知道每个月最大有31天,我们需要有这样的数据集合;SELECT 1 UNION ALLSELECT 2 UNION ALLSELECT 3 UNION ALLSELECT 4 UNIO...原创 2019-11-05 11:00:08 · 4051 阅读 · 0 评论