1.首先,我们来介绍第一种方式:

◆查询的SQL语句如下:

  1. select row_number() over (order by name) as rowid, sysobjects.[name] from sysobjects

◆运行的结果:

  1. rowid   name
  1. 1           all_columns
  1. 2           all_objects
  1. 3           all_parameters
  1. 4           all_sql_modules
  1. 5           all_views

2.最后,我们来介绍第二种方式:

在我们利用这种方式生成自动序号时,Test_Table必须在数据库中不能存在,因为在执行这些SQL语句的时后自动会创建表。

  1. select id=IDENTITY(int,1,1), sysobjects.[name] as name into dbo.Test_Table from sysobjects

详细讲解有关获取当月天数的实用技巧

 
 

获取当月天数的实用技巧:

以下是引用片段:

  1. select day(dateadd(mm,1,getdate())-day(getdate()))
  1. --获得当月天数

分析如下:

  1. select getdate()  --当前日期
  1.  
  1. select day(getdate()) --目前第几天
  1.  
  1. select getdate()-day(getdate())   --上个月最后一天
  1.  
  1. select dateadd(mm,1,getdate())-day(getdate())  --加上一个月
  1.  
  1. select day(dateadd(mm,1,getdate())-day(getdate())) --获得当月天数

  

以下是引用片段:

  1. <script language="VBScript">
  1. Dim dt1, dt2
  1. dt1 = Date
  1. dt1 = CDate(Year(dt1) & "-" & Month(dt1) & "-1") ' 得到本月第一天
  1. dt2 = DateAdd("m", 1, dt1) ' 得到上个月第一天
  1. MsgBox DateDiff("d", dt1, dt2) ' 得到两个月的差
  1. </script>

以下是引用片段:

  1. <script language="jscript">
  1. var dt = new Date(); //得到当前时间
  1. dt = new Date(dt.getFullYear(), dt.getMonth() + 1, 0); //得到本月最后一天
  1. alert(dt.getDate()); // 本月最后一天即为本月的天数
  1. </script>

取一表前N条记录 各个数据库的不同SQL写法

从别处看到的,本人在用的是DB2,竟然都不一样……看来是不能说“会SQL,所有的数据库用起来都一样”了。 
 
1. ORACLE  
SELECT * FROM TABLE1 WHERE ROWNUM<=N  
2. INFORMIX  
SELECT FIRST N * FROM TABLE1  
3. DB2


5  
SELECT * ROW_NUMBER() OVER(ORDER BY COL1 DESC) AS ROWNUM WHERE ROWNUM<=N  
DB2  
SELECT COLUMN FROM TABLE FETCH FIRST N ROWS ONLY  
4. SQL SERVER  
SELECT TOP N * FROM TABLE1  
5. SYBASE  
SELECT TOP N * FROM TABLE1  
6. mysql:  
select * from table_name limit N

为什么SQL不许在视图定义ORDER BY子句

发布时间:2007.08.03 05:01     来源:赛迪网    作者:luoyingshu

问:为什么SQL Server不允许在视图定义使用ORDER BY子句?

答: SQL Server之所以不允许在视图定义中使用ORDER BY子句是为了遵守ANSI SQL-92标准。因为对该标准的原理分析需要对结构化查询语言(SQL)的底层结构和它所基于的数学理论进行讨论,我们不能在这里对它进行充分的解释。但是,如果你需要在视图中指定ORDER BY子句,可以考虑使用以下方法:

  1. USE pubs
  1. GO
  1.  
  1. CREATE VIEW AuthorsByName
  1. AS
  1. SELECT TOP 100 PERCENT *
  1. FROM authors
  1. ORDER BY au_lname, au_fname
  1. GO

Microsoft在SQL Server 7.0中引入的TOP结构在同ORDER BY子句结合使用时是非常有用的。只有在同TOP关键词结合使用时,SQL Server才支持在视图中使用ORDER BY子句。

注意:TOP关键词是SQL Server对ANSI SQL-92标准的扩展。

一条SQL语句变得巨慢的原因及其解决方法

发布时间:2008.01.30 04:58     来源:赛迪网    作者:赵震

现象:一条SQL突然运行的特别慢。

  1. select uidTable.column_value, first_name||' '
  1. ||last_name, company, job_title, upper(member_level),
  1. upper(service_value)
  1. from (select * from table(select cast(multiset
  1. (select b from bbb)as Taaa) from dual)) uidTable,member
  1. where uidTable.column_value = member.login_id(+)
  1. and member.site='alibaba' and member.site='test';

出错原因:用户增加了一个条件member.site=test,造成连接的顺序变化了,原来的驱动表是uidTable(最多1024条记录),现在变成了member表做驱动(600W条)。所以这条语句变的巨慢。

但是既然是外连接,为什么连接的顺序会改变呢?因为外连接的连接顺序不是由COST决定的,而是由连接的条件决定的。发现执行计划如下:

  1. -------------------------------------------------------
  1. | Id | Operation | Name | Rows | Bytes | Cost |
  1. --------------------------------------------------------
  1. | 0 | SELECT STATEMENT | | 1018 | 72278 | 8155 |
  1. | 1 | NESTED LOOPS | | 1018 | 72278 | 8155 |
  1. | 2 | VIEW | | 4072 | 69224 | 11 |
  1. | 3 | COLLECTION ITERATOR SUBQUERY FETCH| | | | |
  1. | 4 | TABLE ACCESS FULL | DUAL | 4072 | | 11 |
  1. | 5 | TABLE ACCESS FULL | BBB | 41 | 287 | 2 |
  1. | 6 | TABLE ACCESS BY INDEX ROWID | MEMBER | 1 | 54 | 2 |
  1. |* 7 | INDEX UNIQUE SCAN | MEMBER_SITE_LID_PK | 4 | | 1 |
  1. -------------------------------------------------

为什么根本就没有执行外连接呢?问题出在member.site='test'这个条件上,因为对外连接的表加了条件,造成外连接失效。改为member.site(+)='test'后,问题彻底解决。

  1. ---------------------------------------------------
  1. | Id | Operation | Name | Rows | Bytes | Cost |
  1. -----------------------------------------------------
  1. | 0 | SELECT STATEMENT | | 1018 | 72278 | 8155 |
  1. | 1 | NESTED LOOPS | | 1018 | 72278 | 8155 |
  1. | 2 | VIEW | | 4072 | 69224 | 11 |
  1. | 3 | COLLECTION ITERATOR SUBQUERY FETCH| | | | |
  1. | 4 | TABLE ACCESS FULL | DUAL | 4072 | | 11 |
  1. | 5 | TABLE ACCESS FULL | BBB | 41 | 287 | 2 |
  1. | 6 | TABLE ACCESS BY INDEX ROWID | MEMBER | 1 | 54 | 2 |
  1. |* 7 | INDEX UNIQUE SCAN | MEMBER_SITE_LID_PK | 4 | | 1 |
  1. -----------------------------------------------------------

利用"SQL"语句自动生成序号的两种方式的更多相关文章

  1. 利用"SQL"语句自动生成序号的两种方式

    1.首先,我们来介绍第一种方式: ◆查询的SQL语句如下: select row_number() over (order by name) as rowid, sysobjects.[id] fro ...

  2. SQL Server 2008 数据库同步的两种方式 (发布、订阅)

    参考转载: SQL Server 2008 数据库同步的两种方式 (发布.订阅) 使用Sqlserver事务发布实现数据同步

  3. python利用mongodb上传图片数据 : GridFS 与 bson两种方式

    利用mongodb保存图片通常有两种方法,一种是将图片数据转化为二进制作为字典的键值对进行保存,另一种是利用mongodb提供的GridFS进行保存,两者各有利弊.性能方面的优劣未曾测试,无法进行评价 ...

  4. 【转】SQL Server 2008 数据库同步的两种方式 (发布、订阅)

    上篇中说了通过SQL JOB的方式对数据库的同步,这一节作为上一节的延续介绍通过发布订阅的方式实现数据库之间的同步操作.发布订阅份为两个步骤:1.发布.2.订阅.首先在数据源数据库服务器上对需要同步的 ...

  5. Spring容器自动调用方法的两种方式

    先看一个Spring中Bean的实例化过程: 1.配置文件中指定Bean的init-method参数 <bean class="com.jts.service.UserService& ...

  6. 利用SQL语句产生分组序号

    partition  by关键字是分析性函数的一部分,它和聚合函数不同的地方在于它能返回一个分组中的多条记录,而聚合函数一般只有一条反映统计值的记录,partition  by用于给结果集分组,如果没 ...

  7. sql 根据查询的记录生成序号的几种方式

    row_number()  order() 函数会为查询出来的每一行记录生成一个序号,依次排序且不会重复,注意使用row_number函数时必须要用over子句选择对某一列进行排序才能生成序号. ra ...

  8. Sql语句模糊查询字符串的两种写法

    Sql语句模糊查询有两种写法,一种是在jdbcTemplate的查询方法参数里拼接字符串%,一种是在Sql语句里拼接%字符串. public class IsNameDaoImpl implement ...

  9. 【转】【WCF】WCF中客户端生成代理的两种方式

    WCF程序中客户端要生成代理才能调用服务,在客户端生成代理有多种方式,如用ChannelFactory和添加服务引用等.下面就分别来介绍下这两种生成代理的方式. 使用ChannelFactory 使用 ...

随机推荐

  1. 阿里云X-Forwarded-For 发现tomcat记录的日志所有来自于SLB转发的IP地址,不能获取到请求的真实IP。

    1.背景:阿里云的SLB的负载均衡,在tomcat中获取不到真实IP,而是阿里的内网IP,SLB中俩台或者3台本身是局域网,这里是SLB原理,能够看看.没怎么看懂.呵呵,要细细读下. 2.须要开启to ...

  2. The broken pedometer-纯暴力枚举

    The broken pedometer Time Limit: 3000MS   Memory Limit: Unknown   64bit IO Format: %lld & %llu i ...

  3. cocos2dx下的A星算法

    这是我依据这篇博文http://hi.baidu.com/wsapyoemdfacmqr/item/bdfb5c0a74c904d01ef0466d.来在cocos2dx上编写.这是终于的效果图: 红 ...

  4. PostgreSQL Replication之第五章 设置同步复制(1)

    到目前为止,我们已经处理了基于文件的复制(或日志传送)和简单的基于流复制的设置.在两种情况中,在master上事务被提交之后,数据被提交,由slave接收.在master提交和slave实际上完全地接 ...

  5. 发送消息vs函数调用

    消息发送:对象处理消息: 消息发送的selector作为消息的一部分,在对象的运行时底层参与了消息分发,最终完成动态函数调用. objc_msgSend(void /* id self, SEL op ...

  6. php重新编译,gd扩展支持jpeg文件

    晚上写东西的时候,报了一个错误: Call to undefined function imagecreatefromjpeg() 没有开启 jpeg 支持?原来是默认安装的 gd 扩展默认不支持 j ...

  7. WSGI和CGI

    https://www.zhihu.com/question/19998865 https://segmentfault.com/a/1190000003069785

  8. 入门python:《Python编程从入门到实践》中文PDF+英文PDF+代码学习

    入门python推荐学习久负盛名的python入门书籍<Python编程从入门到实践>. 书中涵盖的内容是比较精简的,没有艰深晦涩的概念,最重要的是每个小结都附带有"动手试一试& ...

  9. ECNUOJ 2857 编辑距离

    编辑距离 Time Limit:5000MS Memory Limit:65536KBTotal Submit:314 Accepted:128 Description  有两个字符串(仅有英文小写字 ...

  10. Testin实验室:陌陌APP通过率为94.92% 基本满足移动社交需求

    Testin实验室:陌陌APP通过率为94.92% 基本满足移动社交需求 2014/11/10 · Testin · 独家评測 11月8日,国内移动社交应用陌陌公开向美国证券交易委员会提交了IPO申请 ...