
SQL相关的
文章平均质量分 65
wpc820411
这个作者很懒,什么都没留下…
展开
-
SQL Server 2005 T-SQL学习笔记:CTE
<br /><br />概念:Common Table Expression,简称CTE,中文可以叫做,通用表表达式.<br />用处:处理以前版本中SQL不好现实,不好理解,复杂的查询问题.比如:分页,递归查询...<br />基本用法:<br /><br /> WITH <name of your CTE>(<column names>)<br />AS<br />(<br /><actual query><br />)<br /><br />SELECT * FROM <name of your CT转载 2010-10-07 14:38:00 · 308 阅读 · 0 评论 -
SQL数据库查询实现行转列与列转行结果SQL语句
<br /> 行转列,列转行是我们在开发过程中经常碰到的问题。行转列一般通过CASE WHEN 语句来实现,也可以通过 SQL SERVER 2005 新增的运算符PIVOT来实现。 用传统的方法,比较好理解。层次清晰,而且比较习惯。 但是PIVOT 、UNPIVOT提供的语法比一系列复杂的 SELECT...CASE 语句中所指定的语法更简单、更具可读性。下面我们通过几个简单的例子来介绍一下列转行、行转列问题。<br />我们首先先通过一个老生常谈的例子,学生成绩表(下面简化了些)来形象了解下行转列 CR转载 2010-10-08 13:40:00 · 1017 阅读 · 0 评论 -
SQL SERVER学习
<br /><br />SQL SERVER学习,太复杂了!<br />1.磁盘柜上有14块73G的磁盘, 数据库为200G 大小包括日志文件,如何设置磁盘(要说明这14磁盘是怎么用的)?<br />这个问题应该是考察硬件知识和数据库物理部署。<br />首先需要知道这些磁盘是否要用于存放数据库备份文件和数据库性能(读/写)要求。来决定raid的级别。<br />1)、如果偏重于性能考虑,而且不用存放数据库备份文件的话,考虑使用raid0+1,这样可使用的磁盘容量为:14*73*50%=511G。<br /转载 2010-10-08 11:19:00 · 452 阅读 · 0 评论 -
Except operator in MSSQL2005
<br /><br />remeber i go to the company that freeborde the hr ask that what is except? how do you it?<br />on that time i can't answer it.<br />Microsoft introduced the EXCEPT operator in SQL Server 2005, which returns all of the distinct rows from the转载 2010-10-08 11:17:00 · 381 阅读 · 0 评论 -
sqlserver2005使用convert转换日期
<br />server使用convert来取得datetime日期数据,以下实例包含各种日期格式的转换<br />语句及查询结果:<br />Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM<br />Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06<br />Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16<br />转载 2010-10-08 11:15:00 · 533 阅读 · 0 评论 -
SQL常用语法函数
<br /><br />代码: <br />Transact SQL 语 句 功 能 <br />--数据操作 <br /> SELECT --从数据库表中检索数据行和列 <br /> INSERT --向数据库表添加新数据行 <br /> DELETE --从数据库表中删除数据行 <br /> UPDATE --更新数据库表中的数据 <br /> --数据定义 <br /> CREATE TABLE --创建一个数据库表 <br /> DROP T转载 2010-10-08 10:47:00 · 649 阅读 · 0 评论 -
存储过程
<br /><br />首先介绍一下什么是存储过程:存储过程就是将常用的或很复杂的工作,预先用SQL语句写好并用一个指定的名称存储起来,并且这样的语句是放在数据库中的,还可以根据条件执行不同SQL语句, 那么以后要叫数据库提供与已定义好的存储过程的功能相同的服务时,只需调用execute,即可自动完成命令。<br /><br /> 请大家来了解一下存储过程的语法。<br /> Create PROC [ EDURE ] procedure_name [ ; number ]<br /> [原创 2010-10-08 09:59:00 · 969 阅读 · 1 评论 -
varbinary转换成字符串
<br /><br />--> Title : varbinary转换成字符串<br /> <br /> <br />declare @s varchar(20),@bin varbinary(1000)<br /> <br />select @s='www.youkuaiyun.com',@bin=cast(@s as varbinary(1000))<br /> <br />declare @re varchar(1000),@i int<br /> <br />select @re='',@i=dataleng转载 2010-10-07 15:28:00 · 2566 阅读 · 0 评论 -
MSSQL求中位數-常見解決方案-整理帖
<br /><br />--> Title : MSSQL求中位數-常見解決方案-整理帖<br /> <br /> <br />/*<br /> <br />--環境描述:<br /> <br />按ID和DateValue排序,希望能取到每一个的中间值,<br /> <br />若ID总数为奇数,取第(n+1)/2个的值;如果是偶数,取第n/2个的值<br /> <br />*/<br /> <br />if object_id('[tb]') is not null drop table [tb]<转载 2010-10-07 15:27:00 · 620 阅读 · 0 评论 -
实现内容的时间交集计算的sql语句
<br /><br />sql语句可以实现大量我们需要的功能,下面介绍的sql语句可以实现内容的时间交集计算,希望对您有所启迪。<br />如果在系统中有一张IM的登录记录表,里面是员工IM的登录时间,有登录时间,离线时间,最后活动时间。<br />因为员工上半时有可能会同时登录多个IM,其中的时间会有交集,因为要计算员工每天IM在线的工作时间,交集时间需要过滤掉。<br />直接在sql server中就可以比较方便的计算出相关内容。具体的直接上sql语句代码:--方便演示,定义一个Source的表变量,转载 2010-10-06 18:47:00 · 526 阅读 · 0 评论 -
解决“每个Y的最新X”问题的SQL语句
<br /><br />“每个Y的最新X”是一个经典的SQL问题,工作中经常碰到。如果想要解决此问题,还真是需要开动下脑筋残性。当然不是“按Y分组求最新的X值”那么简单,要求最新X的那条记录或主键ID。用一条SQL语句可以简单的解决此问题。<br />生成实例表和数据:--创建表 CREATE TABLE dbo.Tab ( ID int NOT NULL IDENTITY (1, 1), Y varchar(20) NOT NULL, X datetime NOT转载 2010-10-06 18:55:00 · 362 阅读 · 0 评论 -
OPENROWSET
<br />select * from openrowset('MSDASQL','Driver=Microsoft Visual FoxPro Driver;SourceType=DBF;SourceDB=d:/','select * from 表名')-------------------------------------------------------------------------------------------------------------包括從 OLE DB 資料转载 2010-10-08 11:07:00 · 654 阅读 · 0 评论 -
链接SQL Server服务器
<br /><br />--建立链接服务器<br />--使用SQL Server 的 Microsoft OLE DB 提供程序,szlt为别名<br />exec sp_addlinkedserver @server='szlt',@provider='sqloledb',@srvproduct='',@catalog='SGIP',@datasrc='X.X.X.X'<br /><br />--建立链接服务器登录映射<br />exec sp_addlinkedsrvlogin @rmts原创 2010-10-08 10:24:00 · 474 阅读 · 0 评论 -
合并结果
<br /><br />ID VALUE1 VALUE2<br />1 a 0.1<br />1 b 0.2<br />1 c 0.3<br />2 a 0.1<br />2 c 0.3<br />现在我想取得的结果是<br />ID result1 result2<br />1 a、b、c 0.1、0.2、0.3<br原创 2010-10-08 10:17:00 · 338 阅读 · 0 评论 -
left join/right join/inner join/union/union all 的区别
<br /><br />如题,这种问题实际在公司的笔试中是很经常碰到的题目,而实际上在项目的具体实施过程中,倒是很少用到,到目前为止我都没用过,当然也可能是我自己的问题啦,呵呵!简单讲讲这些的区别:<br />(1)left join/right join/inner join<br />select * from first_table left join/right join/inner join second_table on first_table.field = second_table.fi原创 2010-10-08 10:00:00 · 695 阅读 · 0 评论 -
MSSQL多列取最大或者最小值
<br /><br />/*<br /> <br />lvl1 lvl2 lvl3 lvl4 lvl <br />4 3 4 1 <br />3 2 2 1 <br />2 2 3 4 <br />4 4 3 4 <br />3 1 2 2 <br />怎么写代码 去比较lvl1、lvl2、lvl3、lvl4 对应每行的转载 2010-10-07 16:09:00 · 806 阅读 · 0 评论 -
SQL Server中查看所有表RowCount最高效的SQL
<br /><br />-- Shows all user tables and row counts for the current database <br />-- Remove OBJECTPROPERTY function call to include system objects <br />SELECTo.NAME,<br />i.rowcnt <br />FROMsysindexesASi <br />INNERJOINsysobjectsASo ONi.id =o.id <b转载 2010-10-07 13:59:00 · 463 阅读 · 0 评论 -
SQL查询效率的讨论
<br /><br />对于数据库来说,查询是数据库的灵魂,那么SQL查询效率究竟效率如何呢?下文将带对SQL查询的相关问题进行讨论,供您参考。<br />一个百万级别的基本信息表A,一个百万级别的详细记录表B,A中有个身份证id,B中也有身份id;先要找出A中在B的详细记录。<br />S1:select B.* from A inner join B on A.id=B.id.<br />S2:游标遍历A表,更具ID找出B表中的记录,再插入的一张临时表里。<br />实验结果:S2的时间效率要远大于S1转载 2010-10-06 18:56:00 · 335 阅读 · 0 评论 -
SQL Server 2005 T-SQL学习笔记:TOP的增强
概念:用来处理前几条数据,在2005中已经有了很大的扩展,可以删除,更新前几条数据.也可以返回指定百分比的数据用处:在2000中,经常用来现实分页算法.听说SQL Server对Top语句,有很好的优化.示例一:(基本用法)--Traditionally usageuse AdventureWorksgoselect top 10 * from Person.Contact示例二:(使用表达式)--Using expressionselect top转载 2010-10-07 14:45:00 · 389 阅读 · 0 评论 -
SQL Server 2005 T-SQL学习笔记:建立动态的PIVOT
<br /><br />利用CTE,我们可以方便地一列中的所有值连接成一个字串,然后在PIVOT语句中使用,以下是示例:<br /> ----Static PIVOT===========<br />select * from <br />(<br /> select CustomerID, datepart(yyyy,OrderDate) as Years, 1 As Counts<br /> from Sales.SalesOrderHeader<br />) piv PIVOT<b转载 2010-10-07 14:36:00 · 541 阅读 · 0 评论 -
数据表设计实例文档版本管理系统表设计
<br /><br />问题描述<br />文档版本管理最主要的是要维护文档的版本链。这很容易让人想到链表这种数据结构,所以我的那位朋友很快就给出了如下的表结构:createtable Table_Docunment( Docunment_Id intnotnullidentity(1000, 1) primarykey, Docunment_Name nvarchar(64) notnull, Docunment_SubmitDate datetimenotnull,转载 2010-10-08 13:29:00 · 994 阅读 · 0 评论 -
SqlServer Physical Schema摘记(建,库,表,索引等等)
<br />SQL Server 2008 supports several new data types, and an entirely new way of storing data in the data<br />pages —sparse columns.<br /><br />Translating the logical database schema into a physical database schema may involve the following<br />c转载 2010-10-08 11:32:00 · 1224 阅读 · 0 评论 -
SQL查询重复数据和清除重复数据
<br /><br />◆选择重复,消除重复和选择出序列<br />有例表:empemp_no name age 001 Tom 17 002 Sun 14 003 Tom 15 004 Tom 16<br />要求: <br />列出所有名字重复的人的记录<br />(1)最直观的思路:要知道所有名字有重复人资料,首先必须知道哪个名字重复了:<br />select name from emp group by name havi转载 2010-10-08 11:13:00 · 546 阅读 · 0 评论 -
大小写区分方法
<br /><br />1.--区分大小写 <br />select * from a where a=’AbCdE’collateChinese_PRC_CS_AI --区分大小写<br />select * from a where a=’abCdE’collateChinese_PRC_CI_AI --不区分大小写<br /><br />2.如果想让服务器上所有的存储表都区分大小写就需要在安装服务器时设置服务器的排序规则 <br />或者 运行 alter database testgr原创 2010-10-08 10:21:00 · 1234 阅读 · 0 评论 -
触发器
<br />语法<br /><br />CREATE TRIGGER trigger_name<br />ON { table | view }<br />[ WITH ENCRYPTION ]<br />{<br /> { { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }<br /> [ WITH APPEND ]<br /> [ NOT FOR REPLICATION ]<br /原创 2010-10-08 09:57:00 · 418 阅读 · 0 评论 -
SQL Server2005 Synonym的使用
<br /><br />1.Synonym的概念 <br /> Synonym(同义词)是SQL Server 2005的新特性。可以简单的理解Synonym为其他對象的别名。<br /> <br />語法<br /> <br />CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object ><br /> <br />< object > :: =<br /> <br />{<br /> <br /> [ server_name.[ da转载 2010-10-07 16:08:00 · 511 阅读 · 0 评论 -
MSSQL計算表達式的值常見解決方案
<br /><br />--> Title : MSSQL計算表達式的值常見解決方案<br /> <br /> <br />if object_id('[tb]') is not null drop table [tb]<br /> <br />go<br /> <br />create table [tb] (ID int,val nvarchar(14))<br /> <br />insert into [tb]<br /> <br />select 1,'1*5' union all<br /> <转载 2010-10-07 15:29:00 · 377 阅读 · 0 评论 -
MSSQL編號重排常見解決方案
<br /><br />--> Title : MSSQL編號重排常見解決方案<br /> <br />--> Author : wufeng4552<br /> <br />--> Date : 2009-11-25 <br /> <br />if object_id('[tb]') is not null drop table [tb]<br /> <br />go<br /> <br />create table [tb] (ID int,ID1 nvarchar(6),ID2 sql_vari转载 2010-10-07 15:13:00 · 352 阅读 · 0 评论 -
sql跨服务器查询示例
<br /><br />sql跨服务器查询应该如何使用呢?下面的例子将会给您一些启示,供您学习参考,希望可以使您对sql跨服务器查询有更深的认识。<br />在写到一个SQL 语句时,于由集团内部部门多,用到的系统也就多,当然数据库的服务器也多个了。在做车间车辆保养时,保养的材料的添加,必须和物资里的名称保持一致。但是物资系统的数据库和机务系统是两个服务器。所以就要用到跨服务器的查询关联了SELECT a.ID,a.FixType,a.Name,a.IsNew,case IsNew when '1' t转载 2010-10-06 18:52:00 · 290 阅读 · 0 评论 -
SQL Server 2005 T-SQL 学习笔记:Try Catch
<br /><br />用处:提供和C#一样的错误处理机制,不过没有finally块.try catch可以嵌套使用.如果错误被catch中处理过,后面的语句去继续运行.<br />语法:<br />begin try<br />...<br />end try<br />begin catch<br />...<br />end catch<br />简单示例:<br /><br /> begin try<br /> begin try<br /> exec sp_execut转载 2010-10-07 14:33:00 · 392 阅读 · 0 评论 -
SQL Server时间算法大全
<br /><br />下文对SQL Server时间时期方面的计算问题进行了整合集中,如果您对SQL Server时间算法方面感兴趣的话,不妨一看,对您学习SQL Server时间算法会有所帮助。<br />1: DECLARE @Date DATETIME 2: SET @Date=GETDATE() 3: --前一天,给定日期的前一天 4: SELECT DATEADD(DAY,-1,@Date) AS'前一天' 5: --后一天,给定日期的后一天 6:转载 2010-10-06 18:45:00 · 779 阅读 · 0 评论 -
终于找到一个有助理解left/right/full outer join的例子
<br /><br />近日在学习《Understading DB2》的时候找到了一个例子,对于理解 left/right/full 三种 outer join 的大有裨益。<br /> 先看样本数据,来自DB2的示例数据库 sample:01db2 => insertintoemployee values('99999','killkill','N','Huang',null,null,null,'nothing',16,'M',null,null,null,null) ; 02DB2原创 2010-10-06 18:19:00 · 637 阅读 · 0 评论 -
SQL Server中Truncate,Delete,Drop的异同点
<br />相同点:<br /> truncate 和不带 where 子句的 delete,以及 drop 都会删除表内的数据<br />不同点:<br /> 1. truncate 和 delete 只删除数据不删除表的结构(定义)<br /> drop 语句将删除表的结构被依赖的约束(constrain)、触发器(trigger)、索引(index);依赖于该表的存储过程/函数将保留,但是变为 invalid 状态。<br />2. delete 语句是数据库操作语言(dml),这个操作会转载 2010-10-08 11:20:00 · 623 阅读 · 0 评论 -
SQL Server 数据库管理常用的SQL和T-SQL语句
<br /><br />1. 查看数据库的版本 <br />select @@version <br /><br />2. 查看数据库所在机器操作系统参数 <br />exec master..xp_msver <br /><br />3. 查看数据库启动的参数 <br />sp_configure <br /><br />4. 查看数据库启动时间 <br />select convert(varchar(30),login_time,120) from master..sysprocesses w转载 2010-10-08 11:14:00 · 376 阅读 · 0 评论 -
SQL求某时间点
<br />SELECT 当月天数=day(dateadd(month,1,getdate()-day(getdate())+1)-1)<br />SELECT 当月天数=datediff(day,getdate(),dateadd(month,1,getdate()))<br />SELECT 当月天数=datediff(day,getdate(),dateadd(month,1,getdate())) <br /> <br />SELECT DATEADD(dd,原创 2010-10-08 10:19:00 · 392 阅读 · 0 评论 -
MSSQL 生成編號 --整理帖
<br /><br /> <br />if object_id('tb','U')is not null drop table tb<br />if exists(select * from dbo.sysobjects where id=object_id(N'[dbo].[f_GetBH]')and xtype in(N'FN', N'IF', N'TF'))<br />drop function [dbo].[f_GetBH]<br />GO<br />create function f_GetBH(转载 2010-10-07 16:07:00 · 412 阅读 · 0 评论 -
MSSQL求連續ID內數量合計-常見解決方案
<br /><br />--> Title : MSSQL求連續ID內數量合計-常見解決方案<br /> <br />--> Author : wufeng4552<br /> <br />--> Date : 2009-12-04<br /> <br />if object_id('tb') is not null drop table tb<br /> <br />go<br /> <br />create table tb(ID varchar(10),Num decimal(10,2)) <b转载 2010-10-07 16:01:00 · 297 阅读 · 0 评论 -
SQL Server 2005 T-SQL学习笔记:PIVOT和UNPIVOT
<br /><br />概念:PIVOT提供将行转换了列的功能,UNPIVOT提供相反的功能.<br />PIVOT 通过将表达式某一列中的唯一值转换为输出中的多个列来旋转表值表达式,并在必要时对最终输出中所需的任何其余列值执行聚合<br />用处:交叉报表<br />基本用法:<br /><br /> SELECT <non-pivoted column> ,<br /><br /> [first pivoted column] AS <column name> ,<br /><br /> [转载 2010-10-07 14:37:00 · 424 阅读 · 0 评论 -
关于sqlserver physical schema的一些SQL
<br />/*create datafile*/<br />CREATE DATABASE NewDB<br />ON<br />PRIMARY<br />(NAME = NewDB,<br />FILENAME = ‘c:/SQLData/NewDB.mdf’,<br />SIZE = 10MB,<br />MAXSIZE = 200Gb,<br />FILEGROWTH = 100)<br />LOG ON<br />(NAME = NewDBLog,<br />FILENAME = ‘d转载 2010-10-08 11:31:00 · 652 阅读 · 0 评论