1. wm_concat函数也来打擂台
使用场景:简单的将一列的字段通过逗号连接起来。
Example:
select a1,(wm_concat(b1),from aa group by a1
如果是10G版本以下通用的语句如下
SELECT t.id id, MAX(substr(sys_connect_by_path(t.sname, ','), 2)) str
FROM (SELECT id, sname, row_number() over(PARTITION BY id ORDER BY sname) rn FROM a) t
START WITH rn = 1
CONNECT BY rn = PRIOR rn + 1
AND id = PRIOR id
GROUP BY t.id;
2.帝王之作(
Sql语句中实现字段的自动增长。)
Example(实现了日期的自动增长):
select to_char(sysdate+rownum,'mm-dd')
from dual connect by rownum <=7
3.还是你最亲(csdn的兄弟们最喜欢用的虚表)
Example:
with tab as
(
select 1
from dual
union all
select 2 from dual
)
4. 还真另类(将所有列使用'||'拼接后插入一个clob字段)
insert into t_result(clob_col) select F_TASK_NAME||F_CREATER_NAME
||f_result from dual;
5.选择性插入语句,很实用
INSERT ALL
WHEN type=1 THEN INTO tab1 VALUES (myseq.NEXTVAL, val)
WHEN type=2 THEN INTO tab2 VALUES (myseq.NEXTVAL, val)
WHEN type IN (3,4,5) THEN INTO tab3 VALUES (myseq.NEXTVAL, val)
ELSE INTO tab4 VALUES (myseq.NEXTVAL, val)
SELECT type, val FROM source_tab;
6.这都被你给删了(删除数据重复的记录)
delete from a a where a.rowid!=(select max(rowid) from a b where a.bm=b.bm and a.mc=b.mc);
7.的确很美,嫁了吧(美妙的数据更新语句,前提是主键相同)
update (select s.name name1,s2.name name2 from simple s,simple2 s2 where s.id=s2.id) v set v.name1=v.name2;
8.选择由你(针对同一数据表是选择插入,还是更新)
merge into a using b on (a.USER_NO=b.USER_NO)
when matched then update set a.NAME=b.NAME
when not matched then insert values (b.USER_NO,b.NAME)
9.Java爱好者(通用的
oracle分页语句)
SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM (
//生成标准的查询语句(没有分页条件的)
Sql_statement
) row_ WHERE rownum <= pageSize * pageNumber
) WHERE rownum_ > pageSize * (pageNumber - 1))
10.让我也来个(使用频率高的查询连续记录)
Example(查询连续3个月的记录):
select id from (select id,sbrq,sbbz,
add_months(trunc(sbrq, 'mm'),
1 - rank() over(partition by id order by sbrq)) ord
from (select id, sbrq, sbbz from gl_wsbxx where sbbz = 'N'))
group by id, ord
having count(*) >= 3
11.随机函数也疯狂
Example:
sys_guid() 获取随机字符串。
dbms_random.value()获取随机数
select * from consume SAMPLE(10) where rownum <2;
SELECT * FROM (SELECT * FROM t ORDER BY sys_guid()) WHERE rownum < 2;这个的效率高些
select * from tb order by dbms_random.value()
12.这个选择性删除记录也很拽
Example:
create or replace trigger tt_del_tri
before delete on tb_Group when(old.groupName = 'system')
declare
raise_application_error(-20000,'不能删除系统名字的列');
begin
阻止删除数据列。。。
13.不老的Kill语句
一 如何查oracle的锁
SELECT /*+ rule */ s.username,decode(l.type,'TM','TABLE LOCK','TX','ROW LOCK',NULL)
LOCK_LEVEL,o.owner,o.object_name,o.object_type,
s.sid,s.serial#,s.terminal,s.machine,s.program,s.osuser
FROM v$session s,v$lock l,dba_objects o
WHERE l.sid = s.sid
AND l.id1 = o.object_id(+)
AND s.username is NOT NULL
二 如何杀掉锁的进程
Alter system kill session 'sid,serial#'
alter system disconnect session 'sid,serial#' immediate;
在win上,还可以采用oracle提供的orakill杀掉一个线程(其实就是一个Oracle进程)
在Linux/Unix上,可以直接利用kill杀掉
数据库进程对应的OS进程
14.正则表达式也想小试牛刀
Example(regexp_substr,regexp_instr,regexp_like,regexp_replace):
SQL> select REGEXP_REPLACE('李四(AAA)','(.+)\((.+)','\1') from dual;
REGEXP_REPLACE('李四(AAA)','(.
------------------------------
李四
SQL>
15. translate函数也来指招
Example(将a用w代替,b用e代替):
select translate('abcdef','ab','we') from dual;
分享到:
相关推荐
"SQL语句收集(实用版)"这个压缩包文件,显然是一份包含了多种实用SQL技巧和示例的文档集合,旨在帮助用户提升SQL查询的效率和准确性。以下是对标题和描述中所提及知识点的详细说明: 1. **基本查询**:SQL的基本...
精妙SQL语句收集;精妙SQL语句收集;精妙SQL语句收集。
"精妙SQL语句收集"这个主题是关于一系列高效、巧妙的SQL查询技巧和实践的集合,这些技巧能够帮助数据库管理员和开发者更有效地操作数据。以下是基于该主题的一些关键知识点的详细阐述: 1. **基本查询操作**:SQL的...
### SQL语句收集:常用数据库表操作语句 根据给定的信息,我们可以总结出一系列重要的SQL语句,这些语句涵盖了数据库操作中的多种常见场景,包括数据查询、数据插入、数据更新与删除等核心功能。下面将对这些SQL...
经典SQL语句收集
### 经典SQL语句收集(ORACLE) #### 一、经典查询语句 在Oracle数据库中,查询语句是日常开发与维护中最常见的操作之一。以下列出了一些经典的查询语句示例: 1. **查询所有用户(排除特定用户)**: ```sql ...
### 经典SQL语句收集(ORACLE) #### 文件概述 该文件包含了一系列经典的Oracle SQL语句及函数,主要目的是用于学习和交流。内容覆盖了常用的查询、函数编写等方面。 #### SQL查询示例 1. **查询非特定用户** ...
《精妙SQL语句收集》 SQL(Structured Query Language)是一种用于管理关系数据库的标准语言,其强大之处在于能够高效地处理数据。以下是一些基础到高级的SQL语句及其应用场景,帮助你更好地理解和运用SQL。 1. **...
以下是一些基础和进阶的SQL语句及其应用: 1. **创建数据库**:使用`CREATE DATABASE`语句可以创建新的数据库。例如,`CREATE DATABASE mydatabase`将创建名为`mydatabase`的新数据库。 2. **删除数据库**:`DROP ...
#### SQL语句 ```sql CREATE DATABASE database-name; ``` #### 解释 这条命令用于创建一个新的数据库。`database-name`需要替换为你想要创建的数据库的名字。如果这个数据库已经存在,则会抛出错误。在某些数据库...
基本的特殊的SQL语句操作,说明:跨数据库之间表的拷贝(具体数据使用绝对路径) (Access可用) insert into b(a, b, c) select d,e,f from b in ‘具体数据库’ where 条件 例子:..from b in '"&Server.MapPath(".")&...
### 常用SQL语句知识点汇总 #### 一、数据库操作 1. **创建数据库** - **语法**:`CREATE DATABASE database-name;` - **解释**:用于创建一个新的数据库实例。其中`database-name`是用户自定义的数据库名称。 ...
- **SQL 语句**: `CREATE DATABASE database-name;` - **说明**: 使用此命令可以创建一个新的数据库。`database-name` 是新数据库的名字。 - **示例**: `CREATE DATABASE MyNewDatabase;` #### 2. 删除数据库 - **...
以下是对给定文件中提及的SQL知识点的详尽解析,旨在帮助读者更好地理解和掌握SQL语句的应用。 ### 1. 创建数据库 创建数据库是数据库管理的首要步骤,通过`CREATE DATABASE database-name`命令,可以指定一个名字...
根据给定文件的信息,我们可以总结出一系列与Oracle SQL语句相关的知识点。这些知识点涉及了基本的数据操作、查询优化以及复杂的连接查询等。 ### 一、基础数据操作 #### 1. 复制表结构(不含数据) - **SQL语句**...
【SQL语句基础】 在SQL(Structured Query Language)中,创建和管理数据库是核心功能。以下是一些基本的SQL操作: 1. 创建数据库:`CREATE DATABASE database-name` 用于创建一个新的数据库,其中`database-name`...