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

◆查询的SQL语句如下:

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

◆运行的结果:

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

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

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

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

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

 
 

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

以下是引用片段:

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

分析如下:

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

  

以下是引用片段:

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

以下是引用片段:

<script language="jscript">
var dt = new Date(); //得到当前时间
dt = new Date(dt.getFullYear(), dt.getMonth() + 1, 0); //得到本月最后一天
alert(dt.getDate()); // 本月最后一天即为本月的天数
</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子句,可以考虑使用以下方法:

USE pubs
GO 
 
CREATE VIEW AuthorsByName
AS
SELECT TOP 100 PERCENT *
FROM authors 
ORDER BY au_lname, au_fname
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突然运行的特别慢。

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

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

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

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

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

---------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost |
-----------------------------------------------------
| 0 | SELECT STATEMENT | | 1018 | 72278 | 8155 |
| 1 | NESTED LOOPS | | 1018 | 72278 | 8155 |
| 2 | VIEW | | 4072 | 69224 | 11 |
| 3 | COLLECTION ITERATOR SUBQUERY FETCH| | | | |
| 4 | TABLE ACCESS FULL | DUAL | 4072 | | 11 |
| 5 | TABLE ACCESS FULL | BBB | 41 | 287 | 2 |
| 6 | TABLE ACCESS BY INDEX ROWID | MEMBER | 1 | 54 | 2 |
|* 7 | INDEX UNIQUE SCAN | MEMBER_SITE_LID_PK | 4 | | 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. 汇编中中括号[]作用以及lea和mov指令的区别

    现在总结一下:其中牵扯到lea指令,mov指令,[] 一.lea指令:对于寄存器来说:第二个操作数是寄存器必须要加[],不然报错,这里lea就是取[寄存器]的值,如:mov eax,2lea ebx, ...

  2. bzoj1800: [Ahoi2009]fly 飞行棋(乱搞)

    1800: [Ahoi2009]fly 飞行棋 题目:传送门 题解: 大水题,早上签个到 没什么好说的...搞个前缀和,算个周长... 周长为奇数肯定误解啊废话QWQ 那么看到n<=20,还不暴 ...

  3. 6.C语言文件操作之英语电子字典的实现,dos版

    多的不说,直接上代码: 里面涉及的字典文件在这:这是传送门,下载下来以后把该文件放在工程目录下即可 #define _CRT_SECURE_NO_WARNINGS #include <stdio ...

  4. manacherO(n)求最长回文子串 hihocoder1032

    原文地址:https://segmentfault.com/a/1190000003914228   http://blog.csdn.net/synapse7/article/details/189 ...

  5. C# 使用指针将不同值类型赋值到字节数组中

    C#指针操作字节数组 Demo(以添加short类型的值为例): //bytes:目标字节数组; offset:目标在字节数组的位置; value:添加的类型值public static unsafe ...

  6. UVa 216 Getting in Line【枚举排列】

    题意:给出n个点的坐标,(2<=n<=8),现在要使得这n个点连通,问最小的距离的和 因为n很小,所以可以直接枚举这n个数的排列,算每一个排列的距离的和, 保留下距离和最小的那个排列就可以 ...

  7. Linux下通过rdesktop连接Windows远程桌面

    rdesktop是linux下支持Windows远程桌面连接的客户端程序,在linux系统下可通过它远程访问Windows桌面,支持多种版本.rdesktop是sourceforge下支持GPL协议的 ...

  8. redis 扩展 windows

    下载地址:http://windows.php.net/downloads/pecl/releases/redis/

  9. linux上将另一个文件内容快速写入正在编辑的文件内

    一.我们看到 www 目录下有两个文件.like.php 内有一行字母,而 loo.php 内什么也没有. 二 .我们来编辑 loo.php. 三.用下面的命令将 like.php 的内容复制到 lo ...

  10. Lenovo k860i 移植Android 4.4 cm11进度记录【上篇已完结】

    2014.5.16 为了验证一下下载的CM11的源码有没有问题,决定编译一下cm官方支持的机器,手上正好有台nexus7 2012,就拿它为例测试一下在mac os x平台的整个编译过程. 1. 最开 ...