SQL知识
十一月de肖邦
这个作者很懒,什么都没留下…
展开
-
oracle在where/order by中引用取别名的列
现有一张用户电话联系方式表(USER_CONTACT):1.取4位尾号并排序(order by 别名列)SELECT USER_NAME, SUBSTR(PHONE_NUMBER, -4) AS TAIL_NUMBERFROM USER_CONTACTORDER BY TAIL_NUMBER成功查询出结果:2. 查询固定某尾号(where 引用别名列),如:9873SELEC...原创 2020-01-18 18:26:29 · 993 阅读 · 0 评论 -
使用Merge into实现: 存在则更新,不存在则插入
现有记录用户每天的访问次数记录表PD_VISITS:当需要记录用户某次访问数据时,需考虑该用户当天是否已存在记录。存在则次数count+1,不存在则需插入一条count为1的该用户的访问记录。Merge into的用法如下(loginName为当前用户,cdate为当天时间):MERGE INTO PD_VISITS VIUSING( SELECT #{loginName,j...原创 2020-01-14 22:14:46 · 805 阅读 · 0 评论 -
oracle rank/dense_rank排序函数
常用格式:SELECT 其他需要查询的字段, RANK()/DENSE_RANK() OVER (PARTITION BY 分组字段 ORDER BY 排序字段 ASC/DESC) RANK(别名,可以自取)FROM 目标表名;某水果店销往云贵川地区的销售记录表如下:现需统计各个地区销售额最高的水果,1.使用RANK函数,sql如下:SELECT ID, NAME, LOCATI...原创 2019-12-29 11:00:58 · 317 阅读 · 0 评论 -
Oracle数据库查询最近一周的记录(后台时间存储类型为10位时间戳)
现有一张SHOPPING表,记录最近的购物记录,包括商品名,金额,时间(以10位时间戳形式存储):为了更直观地了解时间信息,我们需要将10位时间戳转换成我们能够看懂的时间字符串,查询sql如下:SELECT NAME, AMOUNT, CDATE / (60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:...原创 2019-11-03 10:33:58 · 1608 阅读 · 0 评论 -
SQL的case when then else end as语句的用法
现有 学生-分数表 STUDENT_SCORE 如下:现在想要在sql中根据学生的分数自动判定学生成绩的等级:SELECT NAME, CASE WHEN SCORE < 60 THEN '不及格' WHEN SCORE < 90 THEN '良好' ELSE '优秀' END AS RANKFROM STUDENT_SCORE结果为:...原创 2019-08-11 20:35:28 · 22958 阅读 · 3 评论 -
利用SQL的decode函数实现自定义排序
现有 条目-类型 ITEM表 如下:现在想要根据自定义TYPE顺序(质量 - 时间 - 数量)对ITEM表的数据进行排序:SELECT * FROM ITEMORDER BYDECODE (TYPE, '质量', 1, '时间', 2, '数量', 3)结果为:...原创 2019-08-11 20:55:48 · 546 阅读 · 0 评论 -
MyBatis的xml中,向Oracle数据库插入List与Map互相嵌套类型的数据
话不多说,直接结合实际应用场景来说明List<Map<String, List>>用法:1.PO层//存储项目的不同类型、不同阶段 所对应到的 不同sheet页的category列表public class ProjectCategoryRelationModel { //项目ID private Integer projectId; //类型...原创 2019-06-09 10:40:38 · 833 阅读 · 0 评论 -
oracle行转列(PIVOT),列转行(UNPIVOT)
1.行转列(PIVOT)现有 学生-分数表 STUDENT_SCORE 如下:想看到每个学生语数外的整体分数情况,这时候可以应用行转列(PIVOT):SELECT * FROM STUDENT_SCOREPIVOT( SUM(SCORE) FOR SUBJECT IN ('语文' AS CHINESE, '数学' AS MATH, '英语' AS ENGLISH))查询结果为:...原创 2019-08-11 21:44:18 · 1685 阅读 · 0 评论