文档章节

SqlServer和Oracle中一些常用的sql语句10 特殊应用

深圳大道
 深圳大道
发布于 2016/12/29 15:40
字数 400
阅读 2
收藏 0
--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'))

本文转载自:http://blog.csdn.net/smartsmile2012/article/details/9177225

深圳大道
粉丝 3
博文 877
码字总数 0
作品 0
深圳
架构师
私信 提问
数据库访问之Sqlite的不同之处

在我的Winform开发框架中,底层的数据访问支持多种不同的数据库,在数据库访问的开发过程中,发现Sqlite多数情况下,操作都和SqlServer或者说是和标准Sql差不多的。当然,Sqlite本身也有一些...

长平狐
2012/08/22
90
0
数据库访问之Sqlite的不同之处

在我的Winform开发框架中,底层的数据访问支持多种不同的数据库,在数据库访问的开发过程中,发现Sqlite多数情况下,操作都和SqlServer或者说是和标准Sql差不多的。当然,Sqlite本身也有一些...

长平狐
2012/06/11
73
0
sqlserver,你的delete语句表名为什么不能别名?

前几天写了几行sql,用于清除环境里面的脏数据,平时开发用的是oracle数据库,看了下里面的语句,处理concat字符串拼接函数看起来稍微特殊点,其它都没有啥问题。百度了下,cancat可以用在收...

heshifk
2018/04/23
0
0
OpenJWeb 1.8数据库管理工具功能说明

QQ:29803446 msn:baozhengw999@hotmail.com email:baozhengw@163.com 联系人:王先生 OpenJWeb 1.8数据库管理工具功能说明 由于使用sqlserver 的DTS跨数据库复制功能经常失败,所以openjweb开...

迷途d书童
2012/03/09
65
0
使用 Informatica 做将字符串转换成日期

数据源为 SQLServer 数据库,且源字段 varchar 类型。需要抽取到 Oracle 数据库中,并且转换为 date 类型。 由于源表和目标表是两种不同的数据库,且数据类型不同,所以无法在源表限定转换器...

DreamOver
2018/06/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

yii2做输入跳转到分页【未测试】

首先使用引用分页类 1、 1 use yii\data\Pagination; 2、控制器 1 //分页跳转 2 public function actionPagego(){ 3 $model = Knowledge::find(); 4 //原生sql语......

dragon_tech
14分钟前
0
0
实时计算轻松上手,阿里云DataWorks Stream Studio正式发布

Stream Studio是DataWorks旗下重磅推出的全新子产品。已于2019年4月18日正式对外开放使用。Stream Studi是一站式流计算开发平台,基于阿里巴巴实时计算引擎Flink构建,集可视化拖拽DAG和SQL...

阿里云官方博客
14分钟前
1
0
【阿里云新品发布·周刊】第9期:实时大数据开发难、运维难、应用难?来,一站解决!

点击订阅新品发布会! 新产品、新版本、新技术、新功能、价格调整,评论在下方,下期更新!关注更多内容,了解更多 最新发布 DataWorks Stream Studio重磅发布 2019年5月15日15时,阿里云Dat...

zhaowei121
18分钟前
0
0
常见的Web攻击手段——CSRF攻击

一、什么是CSRF攻击? 跨站请求伪造(Cross-Site Request Forgery, CSRF),恶意网站通过脚本向当前用户浏览器打开的其它页面的 URL 发起恶意请求,由于同一浏览器进程下 Cookie 可见性,导致用...

Lienson
19分钟前
0
0
H3C设备网络组建和设置

路由器: ER8300 交换机: S3600v2 说明:这次网络配置主要是模拟,这套网络是挂在办公室网络下的.由于办公室给我的网络是:192.168.3.0/24, 网关是:192.168.3.254. 所以我们规划如下: ER8300 wa...

WinkJie
20分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部