Sql
番茄鲨鱼面
这个作者很懒,什么都没留下…
展开
-
join(连个不同的表根据某连接条件左右连接到了一起)
(select * ) join (select * ) on 连接条件JOIN: 如果表中有至少一个匹配,则返回行LEFT JOIN: 即使右表中没有匹配,也从左表返回所有的行RIGHT JOIN: 即使左表中没有匹配,也从右表返回所有的行FULL JOIN: 只要其中一个表中存在匹配,就返原创 2013-12-02 10:45:29 · 2126 阅读 · 0 评论 -
oracle将unix时间戳格式转成日期格式显示
top.insert_time是精确到秒的数据: select TO_CHAR(top.insert_time / ( 60 * 60 * 24) + TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH:MI:SS'), 'YYYY-MM-DD HH24:MI:SS') AS CDATE from talbeName原创 2016-03-03 14:03:37 · 2730 阅读 · 0 评论 -
oracle将时间转成unix时间戳形式
这样是秒数。 select (TO_DATE('2016-02-29 00:00:00', 'YYYY-MM-DD HH24:mi:ss') - TO_DATE('1970-01-01 08:00:00', 'YYYY-MM-DD HH24:mi:ss')) * 86400 from dual原创 2016-03-03 14:01:21 · 3393 阅读 · 0 评论 -
sql中的字段、字符串拼接
Oracle:oracle的拼接字符是||。eg:SELECT ID || '-' || qyname FROM t_kp_qyyd_mtjf;------------------------------------------------------------------变态的分割线------------------------------------------------原创 2015-07-31 15:18:29 · 12272 阅读 · 0 评论 -
oracle创建表空间和用户
在本机安装了Oracle数据库,接下来是创建表空间和用户。--创建表空间:create temporary tablespace USER_TEMPtempfile 'D:\oracle\oradata\user_temp.dbf'size 50mautoextend onnext 50m maxsize 20480mextent man原创 2015-07-31 15:24:33 · 402 阅读 · 0 评论 -
创建存储过程
mySql1.1 CREATE PROCEDURE (创建)CREATE PROCEDURE存储过程名 (参数列表) BEGIN SQL语句代码块END注意:由括号包围的参数列必须总是存在。如果没有参数,也该使用一个空参数列()。每个参数默认都是一个IN参数。要指定为其它参数,可在参数名之前转载 2013-12-02 10:51:08 · 1372 阅读 · 0 评论 -
with cube
SQL With cubegroup by *1,*2 with cube(这样会根据*1,*2做一个汇总计算,即group by后的所有列)同理,with rollup,只对group by 分组后的第一个字段做汇总计算。cube运算符在 SELECT 语句的 GROUP BY 子句中指定。该语句的选择列表应包含维度列和聚合函数表达式。GROUP BY 应指定维度列和关键字 WI转载 2013-12-02 10:48:01 · 957 阅读 · 0 评论 -
创建触发器
mySql:drop Trigger 'newChapter';create trigger 'newChapter' after insert on 'xh_book' for each row 具体被触发的sql语句如:下面两个触发器,一个insert触发,一个delete触发。DROP TRIGGER `newChapterInsert`;DROP TRIGG原创 2013-12-02 10:51:42 · 496 阅读 · 0 评论 -
compute
GROUP BY子句有个缺点,就是返回的结果集中只有合计数据,而没有原始的详细记录。如果想在SQL SERVER中完成这项工作,可以使用COMPUTE BY子句。COMPTE生成合计作为附加的汇总列出现在结果集的最后。当与BY一起使用时,COMPUTE 子句在结果集内生成控制中断和分类汇总。1 不能将distinct与行统计函数一起使用2 compute by 中列出的列必转载 2013-12-02 10:47:22 · 711 阅读 · 0 评论 -
case的用法(sql server)
select tname as '姓名',depart as '单位',case profwhen '教授' then '高级职称'when '副教授' then '高级职称'when '讲师' then '中级职称'when '助教' then '初级职称'end as '职称类型'from teacher解:case后面跟着的是字段名,when后是具转载 2013-12-02 10:49:17 · 688 阅读 · 0 评论 -
if的用法(sql Server)
if (select avg(degree) from score where cno='3-105')>80begin print '课程:3-105'print '考试成绩还不错'endelsebeginprint '课程:3-105'print '考试成绩一般'end原创 2013-12-02 10:48:43 · 2425 阅读 · 0 评论 -
union
两个表格上下连接:select author_id,author.name from authorsunionselect client_id,client.name from clients上面是作者,下面是客户的显示。原创 2013-12-02 10:44:21 · 558 阅读 · 0 评论 -
带有隶属关系的目录树查询start with
我们经常会将一个比较复杂的目录树存储到一个表中。或者将一些部门存储到一个表中,而这些部门互相有隶属关系。这个时候你就会用到connect by prior start with。connect by 是结构化查询中用到的,其基本语法是:select ... from tablename start with 条件1connect by prior 条件2where转载 2013-12-02 10:52:34 · 543 阅读 · 0 评论 -
一条记录中包含多个count
SELECT COUNT(CASE WHEN A.CHK_TYPE IN ('1') AND A.TASK_END_STS NOT IN ('4') THEN 'frUFCount' END) frUFCount,COUNT(CASE WHEN A.CHK_TYPE IN ('1') and A.TASK_END_STS IN ('4') THEN 'frcount'转载 2013-12-02 10:50:21 · 680 阅读 · 0 评论 -
mysql优化存储过程中批量插入的速度
第一次操作,每一条数据执行一次插入操作。 一万条数据花费34s,太慢。CREATE PROCEDURE insertPro(in sum INT)BEGINDECLARE count INT DEFAULT 0;DECLARE i INT DEFAULT 0;set count=0;set i = rand() * 10000;while count<sum do inse原创 2016-09-29 16:43:56 · 10708 阅读 · 5 评论