利用"SQL"语句自动生成序号的两种方式
2024-07-13 19:31:56 223人阅读
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
发布时间: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 = http://www.mamicode.com/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 | -----------------------------------------------------------
des style color 使用 os
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉:
投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
×
https://www.u72.net/daima/uz24.html