数据库语句·存储过程 小知识

、最近遇到在分页查询里将某些特定的数据靠前展示问题,

解决办法:使用 ROW_NUMBER() OVER函数

该函数是对你 SELECT语句返回的数据进行编号处理,从1开始。在查询时应用了一个排序标准后,只有通过编号才能够保证其顺序是一致的,当使用ROW_NUMBER函数时,也需要专门一列用于预先排序以便于进行编号。

举例,select *, ROW_NUMBER() over(order by 排序字段) as rows from Table,order by 随你跟几个

还有一种方式 row_number() OVER (PARTITION BY COL1 ORDER BY COL2) 

它表示根据COL1分组,在分组内部根据 COL2排序,而此函数计算的值就表示每组内部排序后的顺序编号(组内连续的唯一的)

 

、UNION用法(UNION 操作符用于合并两个或多个 SELECT 语句的结果集。)

要注意的是:UNION 内部的 SELECT 语句必须拥有相同数量的列。列也必须拥有相似的数据类型。同时,每条 SELECT 语句中的列的顺序必须相同。

select top 1 OSCODE from TB_DICT_ZRZ z ,TB_OS_DICTSYS o
where z.CJZID=o.DICTCODE and o.DICTTYPE='cjz' and CJZNAME='${车站}' and CJZNAME<>'调度中心'
and OSCODE<>'010501' 
union
select top 1 OSCODE from TB_DICT_ZRZ z ,TB_OS_DICTSYS o
where z.CJZID=o.DICTCODE and o.DICTTYPE='cjz' and CJZNAME='${车站}' and CJZNAME='调度中心'
and OSCODE='010501' ;

默认地,UNION 操作符选取不同的值。如果允许重复的值,请使用 UNION ALL。UNION 结果集中的列名总是等于 UNION 中第一个 SELECT 语句中的列名。

增加一个例子

select id,typename,fid from tb_dict_equipment_type order by typecode asc

想在该语句查询出的结果后再加一条 “不选” 的数据,如图: 

使用
select id,typename,fid from tb_dict_equipment_type order by typecode asc
UNION
select top 1 id='',typename='不选',fid='' from tb_dict_equipment_type
总报 关键字 'UNION' 附近有语法错误。
查找原因是因为 order by ,改为

select id,typename,fid,typecode from tb_dict_equipment_type 
UNION
select top 1 id='00000000-0000-0000-0000-000000000000',typename='不选',fid='00000000-0000-0000-0000-000000000000',typecode='' from tb_dict_equipment_type
order by typecode asc

 

 

三、MyBatis Generator 生成的example 如何使用 and or 简单混合查询 

四、将查询到的一张表的数据更新到另一张表中

update tb_device d INNER JOIN tb_store s on d.store=s.store set d.storeid=s.storeno

五、MySql计算两个日期的时间差函数

SELECT TIMESTAMPDIFF(MONTH,'2009-10-01','2009-09-01'); 
interval可是: 
SECOND 秒 SECONDS 
MINUTE 分钟 MINUTES 
HOUR 时间 HOURS 
DAY 天 DAYS 
MONTH 月 MONTHS 
YEAR 年 YEARS 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值