从一句SQL得出的启示】的更多相关文章

select count(*) + 1 from `table` where rank > (select rank from `table` where id = *) 上面那句SQL 给了我一启示,查出比当前用户积分多的记录的总记录数+1,就是当前用户在所有用户中的排名... 如果是按积分的大小来排名的话,积分一样,排名启不是一样?…
在实际开发的时候有的时候希望一次执行多句SQL语句,又不想使用Transcation的话,可以直接将多句SQL语句拼接起来.例如: var sql = "Begin " + "Update tabUser Set UserName = :UserName Where UserId = :UserId; " + "Update tabUser Set UserPassword = :UserPassword Where UserId = :UserId An…
众所周知,目前的mysql版本中并不支持直接的递归查询,但是通过递归到迭代转化的思路,还是可以在一句SQL内实现树的递归查询的.这个得益于Mysql允许在SQL语句内使用@变量.以下是示例代码. 创建表格 CREATE TABLE `treenodes` ( `id` int , -- 节点ID `nodename` ), -- 节点名称 `pid` int -- 节点父ID ); 插入测试数据 INSERT INTO `treenodes` (`id`, `nodename`, `pid`)…
ACCESS 例子: insert into products (ProNumber,CASNumber,Cnname,Price,Enname,Baozhuang,Pinpai) select ProNumber,CASNumber,Cnname,Price,Enname,Baozhuang,Pinpai from product22 1.用一句sql从一个表里面取出数据导入另外一个表里面.这个对不同程序之间的数据转换很有用处,而且速度快,数据完整: insert into table1 (c…
--一句Sql把表结构全部查询出来 SELECT 表名 = Case When A.colorder=1 Then D.name Else '' End, 表说明 = Case When A.colorder=1 Then isnull(F.value,'') Else '' End, 字段序号 = A.colorder, 字段名 = A.name, 字段说明 = isnull(G.[value],''), 标识 = Case When COLUMNPROPERTY( A.id,A.name,'…
对于MySQL而言,其实分为客户端与服务端. 服务端,就是MySQL应用,当我们使用net start mysql命令启动的服务,其实就是启动了MySQL的服务端. 客户端,负责发送请求到服务端并从服务端获取数据,客户端可以有多种形式,可以是我们通过mysql -uroot -p1234打开的黑窗口,也可以是我们使用的Nativecat.SQLyog等数据库连接工具,甚至我们的程序,也可以称作MySQL的客户端. 而当我们在mysql窗口或者数据库连接工具中输入一句sql后,我们就可以获取到想要…
@@IDENTITY返回最后插入的标识值. 语法@@IDENTITY 返回类型numeric 注释在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值.若此语句没有影响任何有标识列的表,则 @@IDENTITY 返回 NULL.若插入了多个行,则会产生多个标识值,@@IDENTITY 返回最后产生的标识值.如果此语句激发一个或多个执行产生标识值的插入操作的触发器,则语句执行后立即调用 @@IDENTITY 将返回由触发器产生的…
from http://www.itpub.net/thread-1852897-1-1.html 有论坛朋友在上面的帖子里问SQL为什么不走索引,正好这两天我也刚刚在看SQL优化,于是试着回答了一下. 下面是原来的SQL: select o.order_id as orderId  from order_info o, member mwhere m.member_id = o.member_id   and o.is_delete = 'N'   /*and (to_date(nvl(o.p…
pl/sql 代码块: SELECT count(distinct t2.so_nbr) INTO v_count2 FROM KFGL_YW_STEP_qd t2 WHERE t2.partition_id_month=to_number(substr(p_month, 5, 2)) AND t2.area_id = cur_area.area_id AND t2.prod_id in (20201010,20201011,20202011,20203030); sql 直接运行 SELECT…
Oracle能够用SYS_CONNECT_BY_PATH字符串聚合函数: SELECT LTRIM(MAX(SYS_CONNECT_BY_PATH(productname, ', ')), ', ') AS productname FROM( SELECT '1' as id, productname, ROW_NUMBER() OVER (PARTITION BY '1' ORDER BY productname) AS curr, ROW_NUMBER() OVER (PARTITION B…
表1 Id Name 1 张三 2 李四 3 王五 表二 Id Name1 Name2 1 1 2 2 2 1 3 2 3 4 1 3 我现在要查出结果如下: Id Name1 Name2 1 张三 李四 2 李四 张三 3 李四 王五 4 张三 王五 这条sql怎么写? 注:SQL Server数据库 第一种比较笨的:  select id,(select top 1 name from t1 as b where b.id=a.name1 ) as name1,(select top 1 n…
在最近的活字格项目中使用ActiveReports报表设计器设计一个报表模板时,遇到一个多级分类的难题:需要将某个部门所有销售及下属部门的销售金额汇总,因为下属级别的层次不确定,所以靠拼接子查询的方式显然是不能满足要求,经过一番实验,利用了CTE(Common Table Expression)很轻松解决了这个问题! 举例:有如下的部门表 以及员工表 如果想查询所有西北区的员工(包含西北.西安.兰州),如下图所示: 如何用CTE的方式实现呢? Talk is cheap. Show me the…
1 . group by 和 having字句: group by是根据列值对数据进行分组, having子句用于对分组的数据进行过滤. [ having 针对的对象是分好的组] eg: employee表: uuid emp_name emp_id dept_id dept表: uuid dept_name dept_id 查询至少包含两个雇员的部门名称: select d.dept_name, d.dept.id, count(e.emp_id) emp_sum --这里统计可以使用*号,但…
在ORACLE 数据库中有一种方法可以实现级联查询   select  *                //要查询的字段 from table              //具有子接点ID与父接点ID的表  start with selfid=id      //给定一个startid(字段名为子接点ID,及开始的ID号) connect by prior selfid=parentid       //联接条件为子接点等于父接点   这个SQL主要用于级联查询,给一个父接点可以查出所有的子接…
简介:master..spt_values,数据行拆分简单小技巧 SELECT ProjGUID , CostGUID , SUM(FtAmount) AS FtAmount , BeginMonth , EndMonth , ( EndMonth AS RowCountNum FROM cb_Loan2Cost WHERE LoanGUID = '6D88EB2B-18FA-4A4A-9ADB-9873B0F14381' GROUP BY ProjGUID , CostGUID , EndMo…
在Mapper.xml如下书写SQL文,其中 resultType告知MyBatis返回的类型: <select id="selectExpiredDate" resultType="java.lang.String" parameterType="java.util.HashMap">         select distinct to_char(created_datetime,'yyyy-MM-dd') as dt from…
问题场景 各大平台店铺的三项评分(物流.服务.商品)变化情况: 商品每日价格的变化记录: 股票的实时涨跌浮: 复现场景 表:主键ID,商品编号,记录时的时间,记录时的价格,创建时间. 问题:获取每个商品每次的变化情况(涨跌幅.涨跌率). 解决思路 1.要想高效率的更新涨跌,就肯定不能是逐条数据更新,要通过自连表建立起对应关系,将每一条数据关联到上一次的价格数据. 2.由于数据库非常庞大,所以可能存在很多垃圾数据,就比如说相关的字段值为NULL或者非有效值的,这些数据要先排除掉. SELECT i…
问题:系统升级后审核认证信息分别写入两个表,现在需要链接用户表和相应的新旧审核表获取字段值? 钻进胡同里:一直纠结于升级之后的会员信息从新表查,升级之前的数据从旧表查,纠结于根据时间戳分条件判断, 其实,只要把新旧两个审核表合并成一个表就可以了,直接从新生成的表里面查询即可! SELECT !ISNULL(ia.approve_stat) ispost,FROM_UNIXTIME(ia.first_approve_time,'%Y-%m-%d %H:%i:%s') first_approve_t…
作用是计算一共有多少符合条件的行.1并不是表示第一个字段,而是表示一个固定值,count(1)和count(2)效果是一样的 count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些.count(字段值),将返回符合条件的非空数量 1.查询所有数据,列出7列数据…
--统计从2017年3月份开始每个月金融服务支付前分期申请数以及通过(核账完成)数 ,ApplyTime)) ,ApplyTime)) as varchar)+'月' as 日期,count(*) as 申请数 ,sum(MoneyCheckStatus) as 通过数 ,ApplyTime)),,ApplyTime)) --统计从2017年3月份开始每个月金融服务支付前分期申请数 ,ApplyTime)) ,ApplyTime)) as varchar)+'月' as 日期,count(*)…
1 --从Table 表中取出第 m 条到第 n 条的记录:(Not In 版本)2 3 SELECT TOP n-m+1 * 4 FROM Table 5 WHERE (id NOT IN (SELECT TOP m-1 id FROM Table ))  6 7 8 --从TABLE表中取出第m到n条记录 (Exists版本)9 10 SELECT TOP n-m+1 * FROM TABLE AS a WHERE Not Exists11 (Select * From (Select To…
原文发布时间为:2010-09-06 -- 来源于本人的百度文章 [由搬家工具导入] 《转》http://www.cnblogs.com/ruanzuzhang/archive/2009/02/22/1395789.html在同一个sql语句中写不同条件的Count数量 类似select count(1),count(2),count(3) from 表 每列都有不同条件的 count组成  其实有count很难实现 可以用sum 去实现它 例子如下   select xy, sum(case…
现在有这样一个需求,要求计算两个日期间的工作日天数,要求除去节假日,其中节假日有一张配置表,具体的格式如下: 开始日期 结束日期 节假日类型 节假日名称 2013-08-10 2013-08-12      法定    端午节 2013-01-01 2013-01-03      法定      元旦 要求计算两个日期间的天数时要将周末时间去掉,还要将节假日区间的天数排除: select count(*) from (select to_date('2010-01-01', 'yyyy-mm-d…
$result = Db::table('xxxxxx')   // 表名 ->alias('g') ->join('xxxxx_2 u','g.user_id = u.id') ->where('(user_id = '.$user_id.' OR puser_id = '.$user_id.') AND pay_mineral = 0')    // pay_menral为硬性条件 ->order('pdate desc') // 时间倒序 ->select();…
前言 前面学习了config.xml,下面就要进入MyBatis的核心SQL映射了,第一篇文章的时候,student.xml里面是这么写的: <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mappe…
SQL简介 SQL 支持下列类别的命令: 1.数据定义语言(DDL) 2.数据操纵语言(DML) 3.事务控制语言(TCL) 4.数据控制语言(DCL)  …
Oracle中的操作符算术操作符:无论是在sqlserver,或者是java中,每种语言它都有算术操作符,大同小异. Oracle中算术操作符(+)(-)(*)(/) 值得注意的是:/ 在oracle中就相当于显示中的除法 5/2 = 2.5 比较操作符: 其中等号可以换成其他运算符:(后面为该操作符的单条件查询样例) != 不等于 select empno,ename,job from scott.emp where job!='manager'    ^= 不等于 select empno,…
修改表名 ALTER TABLE 原表名 RENAME TO 新表名; 一句SQL语句只能修改一张表 show tables; 1. SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO db_', substring(table_name, ), ';' ) FROM information_schema. TABLES WHERE table_name LIKE 'ct%'; 批量复制一下到Notepad++中,只保留sql语句,再复制…
一.CASE的两种用法 1.1 等值判断->相当于switch case (1)具体用法模板: CASE expression WHEN value1 THEN returnvalue1 WHEN value2 THEN returnvalue2 WHEN value3 THEN returnvalue3  ELSE defaultreturnvalue END (2)具体使用示例: 假设我们有一个论坛网站,其中有一张User表{ UId,Name,Level },Level是一个int类型,代…
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-2使用原生SQL语句更新 问题 你想在实体框架中使用原生的SQL语句,来更新底层数据存储. 解决方案 假设你有一张如图3-2所示的Payment数据库表,使用实体框架设计器工具创建了一个如图3-2所示的模型. 图3-2 Payment表,包含一个供应商的付款信息 图3-3 包含一个Payment实体的模型 为了在底层的Payment表中执行一句和多句SQL语句,可以使用在DbContex…