--标准函数Lpad 可以实现左补零,但是如果多于需要长度,则会截断字符串
SELECT LPAD ('1' , 3 , '0') FROM DUAL -- return 001

情况一:需要补零。   
    SELECT LPAD ('1' , 3 , '0') FROM DUAL
    结果:001   正确 
情况二:不需要补零。
    SELECT LPAD ('001' , 3 , '0') FROM DUAL
    结果:001   错误

select
to_char(wmsys.wm_concat(
queuesign
||(select LPAD(sortno,3,0)from dual)
||'('||
patname||')'
)) as WaitPatients
from
(--查询分组数据的前 3 条数据
SELECT *
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY cc.queuename ORDER BY cc.enroldate) rn,
cc.*
FROM
( --查询已登记数据,根据队列、登记日期、状态排序--结束至bb
select * from
(select a.patname,a.queuesign,a.queuename,a.sortno,a.enroldate,a.status
from qs_register a where a.status='已登记'
group by a.patname,a.queuesign,a.queuename,a.sortno,a.enroldate,a.status
order by a.queuename,a.enroldate,a.status
) bb
)cc ) WHERE rn in(1,2,3)
) b
group by queuename

实例二

create or replace view VIEW_GETCALLANDWAITPATIENT as
select *
--ok.queuename,ok.patname,ok.queuesign,ok.sortno,ok.enroldate,ok.status,ok.checkroom,ok.areapart,ok.ofdepart,ok.WaitPatients
from
(
SELECT ROW_NUMBER() OVER(PARTITION BY ok.queuename ORDER BY ok.enroldate) ook,
ok.*
from (select * from
(
SELECT *
FROM (
SELECT ROW_NUMBER() OVER(PARTITION BY cc.queuename ORDER BY cc.enroldate) rn,
cc.*
FROM
(select * from
(select a.patname,a.queuesign,a.queuename,a.sortno,a.status,a.checkroom,a.areapart,a.enroldate,a.ofdepart
from qs_register a where a.status='就诊中'
group by a.patname,a.queuesign,a.queuename,a.sortno,a.status,a.checkroom,a.areapart,a.enroldate,a.ofdepart
order by a.queuename,a.status,a.enroldate) bb)cc
)
WHERE rn = 1
) mm, --查询已登记每组前3条数据并合并为(1003(张三丰),1003(张三丰),1003(张三丰))
(select
to_char(wmsys.wm_concat(
queuesign
||(select LPAD(sortno,3,0)from dual)
||'('||
patname||')'
)) as WaitPatients
from
(--查询分组数据的前 3 条数据
SELECT *
FROM (SELECT ROW_NUMBER() OVER(PARTITION BY cc.queuename ORDER BY cc.enroldate) rn,
cc.*
FROM
( --查询已登记数据,根据队列、登记日期、状态排序--结束至bb
select * from
(select a.patname,a.queuesign,a.queuename,a.sortno,a.enroldate,a.status,a.ofdepart
from qs_register a where a.status='已登记'
group by a.patname,a.queuesign,a.queuename,a.sortno,a.enroldate,a.status,a.ofdepart
order by a.queuename,a.enroldate,a.status,a.ofdepart
) bb
)cc ) WHERE rn in(1,2,3)
) b
group by queuename
)nn) ok )
WHERE ook = 1 --group by ok.queuename,ok.patname,ok.queuesign,ok.sortno,ok.enroldate,ok.status,ok.checkroom,ok.areapart,ok.ofdepart,ok.WaitPatients

oracle--合并行数据(拼接字符串),获取查询数据的前3条数据...的更多相关文章

  1. SQL分组查询每组前几条数据

    /*第一种实现方法,效率低并且有错误*/ DECLARE @DD DATETIME SET @DD = GETDATE() SELECT a.GoodsID , a.Account , a.LastU ...

  2. SQL SERVER 查询特定的前几条数据

    1. 使用MS SQL Server 2008: 2. 数据库内容如下: insert into xuexi1 values('张三0', '数学', 98 ) insert into xuexi1 ...

  3. sqlserver获取当前id的前一条数据和后一条数据

    一.条件字段为数值的情况   select * from tb where id=@id; --当前记录   select top 1 * from tb where id>@id order  ...

  4. sql面试 查找每个班级的前5名学生(取分类数据的前几条数据)

    关键字PARTITION BY 自己看代码喽~ SELECT * FROM ( SELECT ROW_NUMBER() OVER (PARTITION BY ClassType ORDER BY Sc ...

  5. Oracle数据库实现获取前几条数据的方法

    如何在Oracle数据库中实现获取前几条数据的方法呢?就是类似SQL语句中的SELECT TOP N的方法.本文将告诉您答案,举例说明了哟!   1.在Oracle中实现SELECT TOP N : ...

  6. 不同数据库,查询前n条数据的SQL语句

    不同的数据库,支持的SQL语法略有不同,以下是不同数据库查询前n条数据的SQl语句 SQL Server(MSSQL) SELECT TOP n * FROM table_name ORACLE SE ...

  7. oracle和sql server中,取前10条数据语法的区别

    在sql server中,取数据中前10条语句,我们可以用top 10 这样语句,但是oracle就没有这个函数,接下来介绍它们之间的区别 1.sql server 取前10语句和随机10条的语法 - ...

  8. SQL Server 获取满足条件的每个条件下的前N条数据

    从数据库获取数据时,经常会遇到获取一个数据列表和该列表中每条数据对应的另一个列表的情况,如果二级列表获取的是全部数据,那么就比较简单.如果二级列表获取的是前n条数据,就会比较麻烦. 从操作上来看,好像 ...

  9. DataTable相关操作,筛选,取前N条数据,获取指定列数据

    DataTable相关操作,筛选,取前N条数据,获取指定列数据2013-03-12 14:50 by Miracle520, 2667 阅读, 0 评论, 收藏, 编辑 1 #region DataT ...

随机推荐

  1. Spring Boot 揭秘与实战(五) 服务器篇 - Tomcat 代码配置

    Spring Boot 内嵌的 Tomcat 服务器默认运行在 8080 端口.如果,我们需要修改Tomcat的端口,我们可以在 src/main/resources/application.prop ...

  2. ORACLE异常处理及函数

    有三种类型的异常错误 :预定义 ( Predefined )错误 ORACLE预定义的异常情况大约有24个.对这种异常情况的处理,无需在程序中定义,由ORACLE自动将其引发. 非预定义 ( Pred ...

  3. Project篇:项目1

    项目: 步骤: (1)布置项目 (2)独立完成项目设计 (3)项目框架讲解 (4)独立完成项目功能编写 (5)项目讲解 项目内容介绍: 项目开发流程: 需求分析------>概要设计------ ...

  4. AI之路,第一篇:python数学知识1

    python 数学知识1 1,向量: 一个向量是一列数.这些数是有序排列的:通过次序中的索引,可以确定每个单独的数: 2, 矩阵: 由m x n 个数aij(i=1,2,3,…, m;  j=1,2, ...

  5. ps使用图层合并切图

    1.新建图层 2.合并要切的图的图层和新建的空白图层 3用正方形工具圈出来要切得图 4.ctrl+c复制,ctrl+n新建,ctrl+v复制过去 5,切图

  6. xdoj-1319 求树上任意一点的最大距离----利用树的直径

    1 #include <bits/stdc++.h> using namespace std; ; vector < vector <int> > g(N); in ...

  7. 第一天 hello world

    二进制编译工具生成img软盘执行文件 二进制编译工具https://pan.baidu.com/s/1j3wAsFxTLWv17V55iNKJJw 利用Bz.exe工具写操作系统自启程序: 前0000 ...

  8. 【BZOJ3527】【ZJOI2014】力

    "FFT还不是随手写?"我终于能说这样的话了இwஇ 原题: 给出n个数qi,给出Fj的定义如下: 令Ei=Fi/qi,求Ei.   FFT嘛,直接推公式 然后就变成俩卷积了,FFT ...

  9. Optimizing Docker Images for Rust Projects

    转自:http://whitfin.io/speeding-up-rust-docker-builds/ This post will be the first of several addressi ...

  10. deno学习四 docker 运行官方的一个http file server

    github 上已经有人搞了一个deno 的docker 镜像,是基于源码编译的,挺好的 所以结合官方的http server demo 使用docker 运行 环境准备 docker-compose ...