
SQL语句
拍豆
主要从事电子商务网站应用的解决方案应用及开发!
展开
-
[标准]SQL的case when then 的使用范例
例如,下面的语句显示中文年月 select getdate() as 日期,case month(getdate()) when 11 then '十一' when 12 then '十二' else substring('一二三四五六七八九十', month(getdate()),1)转载 2014-03-01 17:23:05 · 718 阅读 · 0 评论 -
ORACLE-Kill 杀死正在执行的Oracle存储过程和死锁语句
存储过程1、找到正在执行的存储过程的 sid ,serial# select b.sid,b.SERIAL#,a.OBJECT, 'alter system kill session ' || '''' || b.sid || ',' ||b.SERIAL# || ''';' kill_command from SYS.V_$转载 2015-01-16 11:45:38 · 3575 阅读 · 0 评论 -
如何获得Sybase中的数据库、表名、字段的SQL语句
1.获得Sybase中所有数据库: select dbid,name from master..sysdatabases2.获得指定数据库中的表列表:select name from 数据库..sysobjects where type='U' order by name3.获得指定数据库中的视图列表:select name from 数据库..sysobjects where typ原创 2015-04-13 18:08:45 · 9439 阅读 · 1 评论 -
In与Exists的区别
这两个函数是差不多的,但由于优化方案不同,通常NOT Exists要比NOT IN要快,因为NOT EXISTS可以使用结合算法二NOT IN就不行了,而EXISTS则不如IN快,因为这时候IN可能更多的使用结合算法。 Select * from tableA Where exists(Select * From tableB Where tableB.ID=tableA.ID)转载 2015-06-17 16:16:47 · 462 阅读 · 0 评论 -
MSSQL日期格式化
Sql Server 中一个非常强大的日期格式化函数Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AMSelect CONVERT(varchar(100), GETDATE(), 1): 05/16/06Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16转载 2015-06-18 09:09:15 · 10411 阅读 · 1 评论 -
通用数据库行转列的方法
1、标准的行数据 ID,学生名,科目,分数 1 张三 语文 98 2 张三 数学 88 3 张三 英语 78 2、转换为列显示 学生名,语文,数学,英语 张三 98 88 783、SQL语句 select 学生名 ,max(case 科目 when ‘语文’ then 语文 else 0 end) 语文 ,max(ca原创 2015-07-04 10:30:34 · 434 阅读 · 0 评论 -
MySQL逗号分割字段的行列转换技巧
MySQL逗号分割字段的行列转换技巧由于很多业务表因为历史原因或者性能原因,都使用了违反第一范式的设计模式。即同一个列中存储了多个属性值(具体结构见下表)。这种模式下,应用常常需要将这个列依据分隔符进行分割,并得到列转行的结果。表数据: ID Value 1 tiny,small,big 2 small,medium 3 tiny,big期望得到结果: ID Val转载 2016-01-19 09:16:33 · 683 阅读 · 0 评论 -
如何利用SQL Server With As递归获取层级关系数据
如果已知当前用户ID我要想知道他的上级领导有哪些,可编写sql语句如下:WITH Emp AS ( SELECT ID , EName , ParentGUID FROM dbo.Employee转载 2016-11-09 00:08:24 · 844 阅读 · 0 评论 -
MSSQL树型结构/获得上级及上上级及获得下级及下下级
-- 获得上级及上上级with cte as(select id,name,parent_id,0 as lvl from catelog where id = '1001'union allselect d.id,d.name,d.parent_id,lvl + 1 from cte c inner join catelog d on c.parent_id = d.id)select原创 2017-04-13 10:05:40 · 618 阅读 · 0 评论 -
Oracle 中 unpivot 与 pivot 的使用范例
-- unpivot:列转行显示-- pivot:行转列显示with s1 as (select guid,code,goodsid,colorid,filer,qty from TRADEMODIDETAIL unpivot (qty for filer in (s1,s2,s3,s4,s5,s6,s7,s8,s9,s10)) where guid='3D481C17B75445原创 2014-08-19 09:04:43 · 2086 阅读 · 0 评论 -
Oracle存储过程的编写与测试
=============================标准存储过程==================================================1.首先定义包create or replace package pak_fksas type fks_cursor is ref cursor; end; 2.定义存储过程create or re原创 2014-12-26 16:06:31 · 592 阅读 · 0 评论 -
Oracle排名函数(Rank)实例详解
--已知:两种排名方式(分区和不分区):使用和不使用partition--两种计算方式(连续,不连续),对应函数:dense_rank,rank ·查询原始数据:学号,姓名,科目名,成绩select *from t_scoreS_IDS_NAMESUB_NAMESCORE1张三转载 2015-01-15 11:37:06 · 465 阅读 · 0 评论 -
select into from 与 insert into select 区别鉴赏
1.INSERT INTO SELECT语句 语句形式为:Insert into Table2(field1,field2,...) select value1,value2,... from Table1要求目标表Table2必须存在,由于目标表Table2已经存在,所以我们除了插入源表Table1的字段外,还可以插入常量。2.SELECT INTO FROM语句原创 2014-03-17 01:06:54 · 479 阅读 · 0 评论 -
MySQL之alter语句用法总结
1:删除列ALTER TABLE 【表名字】 DROP 【列名称】2:增加列ALTER TABLE 【表名字】 ADD 【列名称】 INT NOT NULL COMMENT '注释说明'3:修改列的类型信息ALTER TABLE 【表名字】 CHANGE 【列名称】【新列名称(这里可以用和原来列同名即可)】 BIGINT NOT NULL COMMENT '转载 2014-03-19 18:37:56 · 477 阅读 · 0 评论 -
mysql 查找结果中自动加序号列
mysql 查找结果中自动加序号列select (@rowNO := @rowNo+1) AS rowno,zhuanfaContent,content,sendDate,sendTime,zhuanfaAuthor,zhuanfaLink from (SELECT zhuanfaContent,content,sendDate,sendTime,zhuanfaAuthor,zhuanfa原创 2014-03-23 19:03:26 · 841 阅读 · 0 评论 -
mysql日期和字符相互转换
mysql日期和字符相互转换 date_format(date,'%Y-%m-%d') -------------->oracle中的to_char(); str_to_date(date,'%Y-%m-%d') -------------->oracle中的to_date(); %Y:代表4位的年份 %y:代表2转载 2014-05-19 00:17:35 · 426 阅读 · 0 评论 -
Oracel 经典的语句
1.遍历合并树型结构输出select id,sys_connect_by_path(name, '>') pname, level as alevel from goodscategory where CONNECT_BY_ISLEAF = 1 start with depth = 1 connect by parentid = prior id2.原创 2014-06-27 14:05:43 · 461 阅读 · 0 评论 -
Oracle取小数点部分
select substr(12.23-floor(12.23),2,10) from dual; 优化的算法select ltrim(12.55523-floor(12.55523),'0.') from dual;转载 2014-07-29 10:36:15 · 3666 阅读 · 0 评论 -
Oracle负荷超过的核查
1.查找当前表级锁的SQL如下:select sess.sid, sess.serial#, lo.oracle_username, lo.os_user_name, ao.object_name, lo.locked_mode from v$locked_object lo, dba_objects ao, v$原创 2014-10-21 14:52:29 · 580 阅读 · 0 评论 -
Oracle wm_concat的使用
表结构: 姓名 科目 成绩张三 语文 89张三 数学 73李四 语文 73李四 数学 73查询语句:select 姓名,wm_concat(to_char(科目||'='||成绩)) from 表名 where 姓名 in ('张三','李四')* 注:wm_concat 内必须要文本字符排序语句原创 2014-12-18 15:16:40 · 2177 阅读 · 0 评论