--482, ORACLE / SQL SERVER
--订购数量超过平均值的书籍
WITH Orders_Book
AS
(
SELECT Book_Name, SUM(Qty) Book_Qty
FROM Orders
GROUP BY Book_Name
)
SELECT *
FROM Orders_Book
WHERE Book_Qty >
(
SELECT AVG(Book_Qty)
FROM Orders_Book
) --递归 产生连续数列1至10000
WITH Tally(N)
AS
(
SELECT 1 N
--FROM DAUL -- ORACLE
UNION ALL
--2.递归区块
SELECT N+1
FROM Tally
WHERE N<=10000
)
SELECT N
FROM TALLY
OPTION (MAXRECURSION 10000) --SQL SERVER设定深度 --490, SQL SERVER
--随机抽出3笔员工数据
SELECT TOP 3
E.Emp_Id
, E.Emp_Name
, E.Dept_Id
FROM Employees E
ORDER BY NEWID() --491, SQL SERVER
--在I100和I200部门中随机抽出一名员工(子分组中各抽出N笔)
SELECT E.Emp_Id
, E.Emp_Name
, E.Dept_Id
FROM
(
SELECT Emp_Id, Emp_Name, Dept_Id
, ROW_NUMBER() OVER (PARTITION BY Dept_Id
ORDER BY NEWID()) RowNo
FROM Employees
WHERE Dept_Id IN ('I100', 'I200')
) E
WHERE E.RowNo <=1 --492, ORACLE
--随机抽出3笔员工数据
SELECT Emp_Id
, Emp_Name
, Dept_Id
FROM
(
SELECT *
FROM Employees
ORDER BY DBMS_RANDOM.VALUE()
)
WHERE ROWNUM<=3 --493, ORACLE
--在I100和I200部门中随机抽出一名员工(子分组中各抽出N笔)
SELECT E.Emp_Id
, E.Emp_Name
, E.Dept_Id
FROM
(
SELECT Emp_Id, Emp_Name, Dept_Id
, ROW_NUMBER()
OVER (PARTITION BY Dept_Id
ORDER BY DBMS_RANDOM.VALUE()) RowNo
FROM Employees
WHERE Dept_Id IN ('I100', 'I200')
) E
WHERE E.RowNo <=1 --495, SQL SERVER
--以符号分割的字符串 分拆成table返回,含一字段 Column_Value
create function [dbo].[m_split](@c varchar(2000),@split varchar(2))
returns @t table(col varchar(200))
as
begin
while(charindex(@split,@c)<>0)
begin
insert @t(col) values (substring(@c,1,charindex(@split,@c)-1))
set @c = stuff(@c,1,charindex(@split,@c),'')
end
insert @t(col) values (@c)
return
end --测试
select * from [dbo].[m_split]('1,2,3', ',') --496, ORACLE
--以符号分割的字符串 分拆成table返回,含一字段 Column_Value
CREATE OR REPLACE TYPE split_tbl AS TABLE OF VARCHAR2(32767); --测试1
SELECT Column_Value
FROM TABLE(Split_Tbl(1,2,3)) --测试2
SELECT Column_Value
FROM TABLE(Split_Tbl('A','B','C'))

SqlServer和Oracle中一些常用的sql语句10 特殊应用的更多相关文章

  1. SqlServer和Oracle中一些常用的sql语句9 SQL优化

    --SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京 ...

  2. SqlServer和Oracle中一些常用的sql语句5 流程控制语句

    --在sql语句中 begin...end 用来设定一个程序块 相关于c#中的{} declare @yz real,@w int --声明变量 set @w=120 --为变量赋值 if @w< ...

  3. SqlServer和Oracle中一些常用的sql语句3 行列转换

    --217, SQL SERVER SELECT Cust_Name , MAX(CASE WHEN Order_Date ='2009-08-01' THEN AR END) "2009- ...

  4. SqlServer和Oracle中一些常用的sql语句6 存储过程

    --不带参数的存储过程 CREATE procedure proc_sql1 as begin declare @i int set @i=0 while @i<26 begin print c ...

  5. SqlServer和Oracle中一些常用的sql语句7 游标

    declare db_cursor4 scroll cursor for select * from 供应商 --声明游标 open db_cursor4 --打开游标 fetch first fro ...

  6. SqlServer和Oracle中一些常用的sql语句8 触发器和事务

    --创建和执行事后触发器 --更新仓库备份表中记录时自动创建数据表且插入三条记录 create trigger db_trigger1 on 仓库备份 for update as begin if E ...

  7. SqlServer和Oracle中一些常用的sql语句4 局部/全局变量

    --把wh1仓库号中姓名含有"平"字的职工工资在原来的基础上加288 update 职工备份 set 工资=工资+288 where 仓库号='wh1' and 姓名 like ' ...

  8. SqlServer 获取字符串中小写字母的sql语句

    SQL字符串截取(SubString) 作用:返回第一个参数中从第二个参数指定的位置开始.第三个参数指定的长度的子字符串. 有时候我们会截取字符串中的一些特殊想要的东西,大小写字母.模号.汉字.数字等 ...

  9. SqlServer 查看备份文件中逻辑文件信息的Sql语句

    RESTORE FILELISTONLY FROM DISK = 'D:\All\DataBase\(2013-12-18)-1.bak' 用来查看备份文件中的逻辑文件信息. 相关信息:SqlServ ...

随机推荐

  1. HTML5入门(一)

    HTML简单介绍: HTML(HyperText Markup Language),超文本标记语言,是一种专门用于创建web的超文本文档编程语言,是我们看到的网页的源代码. 版本简介: 1997年推出 ...

  2. Linux字符界面和图形界面

    Ubuntu图形界面和字符界面的切换 Ubuntu和其他的Linux系统一样,有图形界面和字符界面,同时能够设置默认的启动界面. linux的显示界面分为命令行的字符界面和图形界面,我们可以设置lin ...

  3. .net format 中 大括号{}处理

    1.string string.format(string format,object arg0) 错误:因为方法中使用{n}做占位符号了,所以其他需要括号{}的地方,就需要{{}}

  4. DAO以及获取自动生成主键值

    package com.alibaba.sql; import java.lang.reflect.InvocationTargetException; import java.sql.Connect ...

  5. 64位系统未注册"MSDAORA.1"提供程序

    原因:如错误,64位系统未注册"MSDAORA.1"提供程序 解决:在IIS应用程序池中找到自己的网站,打开高级设置,设置“启用32位应用程序”为“True”即可. 另外还有其他解 ...

  6. 8,SSO,,eager copy,COW

    针对字符串不同的长度,“编译器”选择不同的优化策略:SSO, eager copy,COW,分别针对短字符串,中等长度字符串,长字符串.不过,现在(2016)的大多数编译器(gcc 4.9.1,vs2 ...

  7. SIGAR - System Information Gatherer And Reporter

    https://support.hyperic.com/display/SIGAR/Home 收藏一篇: http://www.cnitblog.com/houcy/archive/2012/11/2 ...

  8. protel99_拼板详细图解

    首先打开PCB文档.如图所示,在PCB左下角放置一個坐標為X=0,Y=0的焊盤. 从下图看,为了方便电路板生产厂家的加工和焊接工厂的加工,拼版的方向是向上Y轴方向拼版. 接着为了在拼版过程中好对齐板边 ...

  9. C++之sort函数

    C++中的sort函数可以直接完美地取代Pas中十多行的快排代码,在这里,总结一下sort函数的用法: 首先是不加参数的情况: #include<cstdio> #include<a ...

  10. doctype(文档类型)的作用是什么?转载

    <!DOCTYPE> 声明位于文档中的最前面的位置,处于 <html> 标签之前.此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范. Document Type ...