收集的又一道有趣的SQL题
作者: 三十而立时间:2009年10月15日 21:59:51本文出自 “inthirties(三十而立)”博客,转载请务必注明作者和保留出处http://blog.csdn.net/inthirties/archive/2009/10/15/4673268.aspx 把次序不对的列找出来 请问 下面的表该如何排序?我有下面的表。次序如下 其中第5个记录和第6条记录次序颠倒了。这个表数据量比较大。 用什么方法可以对这个表中的 b列排序。使其能够按照升序排列。
a b
1 #1杆塔
2 #2杆塔
3 #3.1杆塔
4 #3.2杆塔
5 #5杆塔
6 #4杆塔
7 #6杆塔
8 #7杆塔
9 #9杆塔
10 #8杆塔
现在要做的事情就是把 次序不对的列找出来。 不是排序。比如上列中b列第5,第6列。第9,10次序不对。 现在要把其中的列找出来。
5 #5杆塔
6 #4杆塔
9 #9杆塔
10 #8杆塔
就是把这样的列能够找出来。 SQL> with temp as(
2 select 1 a, '#1杆塔' b from dual union all
3 select 2 a, '#2杆塔' b from dual union all
4 select 3 a, '#3.1杆塔' b from dual union all
5 select 4 a, '#3.2杆塔' b from dual union all
6 select 5 a, '#5杆塔' b from dual union all
7 select 6 a, '#4杆塔' b from dual
8 ) select a, b from (select temp.*, row_number() over(order by a asc) a_ord,r
ow_number() over(order by to_number(substr(b, 2, length(b)-3)) asc) b_ord from t
emp) t where t.a_ord <>t.b_ord;
A B
---------- --------
6 #4杆塔
5 #5杆塔
如果没有那句“三十而立”,三十岁的男人正可以轻轻松松 专业论坛 http://www.inthirties.com 技术博客 http://blog.csdn.net/inthirties 个人站点 http://blog.inthirties.com Oracle Mysql技术论坛| 打造实用的Oracle Mysql技术交流园地
相关文档:
import java.sql.*;
/*
* JAVA连接ACCESS,SQL Server,MySQL,Oracle数据库
*
* */
public class JDBC {
public static void main(String[] args)throws Exception {
Connection conn=null;
//====连接ACCESS数据库 ......
1.只查询需要的列,不用*
2.IN适合于外表大而内表小的情况;EXISTS适合于外表小而内表大的情况 1、升级硬件
2、根据查询条件,建立索引,优化索引、优化访问方式,限制结果集的数据量。
3、扩大服务器的内存
4、增加服务器CPU个数
5、对于大的数据库不要设置数据库自动增长,它会降低服务器的性能 ......
如果在SQL Server
里需要定时或者每隔一段时间执行某个存储过程或3200字符以内的SQL语句时,可以用管理->SQL Server代理->作业来实现。
1、管理->SQL Server代理->作业(按鼠标右键)->新建作业->
2、新建作业属性(常规)->名称[自定义本次作业的名称]->启
用的方框内是勾号->分类处可 ......