把长日期转换为短日期   Convert(char(10),getdate(),120)

整理了一些t-sql技巧 MS-SQL数据库开发常用汇总 1.按姓氏笔画排序:
整理了一些t-sql技巧Select * From TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as 
整理了一些t-sql技巧2.数据库加密:
整理了一些t-sql技巧select encrypt('原始密码')
整理了一些t-sql技巧select pwdencrypt('原始密码')
整理了一些t-sql技巧select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同 encrypt('原始密码')
整理了一些t-sql技巧select pwdencrypt('原始密码')
整理了一些t-sql技巧select pwdcompare('原始密码','加密后密码') = 1--相同;否则不相同
整理了一些t-sql技巧3.取回表中字段:
整理了一些t-sql技巧declare @list varchar(1000),@sql nvarchar(1000) 
整理了一些t-sql技巧select @list=@list+','+b.name from sysobjects a,syscolumns b where a.id=b.id and a.name='表A'
整理了一些t-sql技巧set @sql='select '+right(@list,len(@list)-1)+' from 表A' 
整理了一些t-sql技巧exec (@sql)
整理了一些t-sql技巧4.查看硬盘分区:
整理了一些t-sql技巧EXEC master..xp_fixeddrives
整理了一些t-sql技巧5.比较A,B表是否相等:
整理了一些t-sql技巧if (select checksum_agg(binary_checksum(*)) from A)
整理了一些t-sql技巧=
整理了一些t-sql技巧(select checksum_agg(binary_checksum(*)) from B)
整理了一些t-sql技巧print '相等'
整理了一些t-sql技巧else
整理了一些t-sql技巧print '不相等'
整理了一些t-sql技巧6.杀掉所有的事件探察器进程:
整理了一些t-sql技巧DECLARE hcforeach CURSOR GLOBAL FOR SELECT 'kill '+RTRIM(spid) FROM master.dbo.sysprocesses
整理了一些t-sql技巧WHERE program_name IN('SQL profiler',N'SQL 事件探查器')
整理了一些t-sql技巧EXEC sp_msforeach_worker '?'
整理了一些t-sql技巧7.记录搜索:
整理了一些t-sql技巧开头到N条记录
整理了一些t-sql技巧Select Top N * From 表
整理了一些t-sql技巧-------------------------------
整理了一些t-sql技巧N到M条记录(要有主索引ID)
整理了一些t-sql技巧Select Top M-N * From 表 Where ID in (Select Top M ID From 表) Order by ID Desc
整理了一些t-sql技巧----------------------------------
整理了一些t-sql技巧N到结尾记录
整理了一些t-sql技巧Select Top N * From 表 Order by ID Desc
整理了一些t-sql技巧8.如何修改数据库的名称:
整理了一些t-sql技巧sp_renamedb 'old_name', 'new_name' 
整理了一些t-sql技巧9:获取当前数据库中的所有用户表
整理了一些t-sql技巧select Name from sysobjects where xtype='u' and status>=0
整理了一些t-sql技巧10:获取某一个表的所有字段
整理了一些t-sql技巧select name from syscolumns where id=object_id('表名')
整理了一些t-sql技巧11:查看与某一个表相关的视图、存储过程、函数
整理了一些t-sql技巧select a.* from sysobjects a, syscomments b where a.id = b.id and b.text like '%表名%'
整理了一些t-sql技巧12:查看当前数据库中所有存储过程
整理了一些t-sql技巧select name as 存储过程名称 from sysobjects where xtype='P'
整理了一些t-sql技巧13:查询用户创建的所有数据库
整理了一些t-sql技巧select * from master..sysdatabases D where sid not in(select sid from master..syslogins where name='sa')
整理了一些t-sql技巧或者
整理了一些t-sql技巧select dbid, name AS DB_NAME from master..sysdatabases where sid <> 0x01
整理了一些t-sql技巧14:查询某一个表的字段和数据类型
整理了一些t-sql技巧select column_name,data_type from information_schema.columns
整理了一些t-sql技巧where table_name = '表名' 
整理了一些t-sql技巧[n].[标题]:
整理了一些t-sql技巧Select * From TableName Order By CustomerName 
整理了一些t-sql技巧[n].[标题]:
整理了一些t-sql技巧

来自http://dev.csdn.net/develop/article/83/83138.shtm

一、 只复制一个表结构,不复制数据

 

整理了一些t-sql技巧select top 0 * into [t1] from [t2]


二、 获取数据库中某个对象的创建脚本

1、 先用下面的脚本创建一个函数

整理了一些t-sql技巧if exists(select 1 from sysobjects where id=object_id('fgetscript') and objectproperty(id,'IsInlineFunction')=0)
整理了一些t-sql技巧 drop function fgetscript
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧create function fgetscript(
整理了一些t-sql技巧 @servername varchar(50)     --服务器名
整理了一些t-sql技巧 ,@userid varchar(50)='sa'    --用户名,如果为nt验证方式,则为空
整理了一些t-sql技巧 ,@password varchar(50)=''    --密码
整理了一些t-sql技巧 ,@databasename varchar(50)    --数据库名称
整理了一些t-sql技巧 ,@objectname varchar(250)    --对象名
整理了一些t-sql技巧
整理了一些t-sql技巧) returns varchar(8000)
整理了一些t-sql技巧as
整理了一些t-sql技巧begin
整理了一些t-sql技巧 declare @re varchar(8000)        --返回脚本
整理了一些t-sql技巧 declare @srvid int,@dbsid int       --定义服务器、数据库集id
整理了一些t-sql技巧 declare @dbid int,@tbid int        --数据库、表id
整理了一些t-sql技巧 declare @err int,@src varchar(255), @desc varchar(255) --错误处理变量
整理了一些t-sql技巧
整理了一些t-sql技巧--创建sqldmo对象
整理了一些t-sql技巧 exec @err=sp_oacreate 'sqldmo.sqlserver',@srvid output
整理了一些t-sql技巧 if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧--连接服务器
整理了一些t-sql技巧 if isnull(@userid,'')='' --如果是 Nt验证方式
整理了一些t-sql技巧 begin
整理了一些t-sql技巧  exec @err=sp_oasetproperty @srvid,'loginsecure',1
整理了一些t-sql技巧  if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧  exec @err=sp_oamethod @srvid,'connect',null,@servername
整理了一些t-sql技巧 end
整理了一些t-sql技巧 else
整理了一些t-sql技巧  exec @err=sp_oamethod @srvid,'connect',null,@servername,@userid,@password
整理了一些t-sql技巧
整理了一些t-sql技巧 if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧--获取数据库集
整理了一些t-sql技巧 exec @err=sp_oagetproperty @srvid,'databases',@dbsid output
整理了一些t-sql技巧 if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧--获取要取得脚本的数据库id
整理了一些t-sql技巧 exec @err=sp_oamethod @dbsid,'item',@dbid output,@databasename
整理了一些t-sql技巧 if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧--获取要取得脚本的对象id
整理了一些t-sql技巧 exec @err=sp_oamethod @dbid,'getobjectbyname',@tbid output,@objectname
整理了一些t-sql技巧 if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧--取得脚本
整理了一些t-sql技巧 exec @err=sp_oamethod @tbid,'script',@re output
整理了一些t-sql技巧 if @err<>0 goto lberr
整理了一些t-sql技巧
整理了一些t-sql技巧 --print @re
整理了一些t-sql技巧 return(@re)
整理了一些t-sql技巧
整理了一些t-sql技巧lberr:
整理了一些t-sql技巧 exec sp_oageterrorinfo NULL, @src out, @desc out 
整理了一些t-sql技巧 declare @errb varbinary(4)
整理了一些t-sql技巧 set @errb=cast(@err as varbinary(4))
整理了一些t-sql技巧 exec master..xp_varbintohexstr @errb,@re out
整理了一些t-sql技巧 set @re='错误号: '+@re
整理了一些t-sql技巧   +char(13)+'错误源: '+@src
整理了一些t-sql技巧   +char(13)+'错误描述: '+@desc
整理了一些t-sql技巧 return(@re)
整理了一些t-sql技巧end
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧

2、 用法如下
用法如下,

整理了一些t-sql技巧print dbo.fgetscript('服务器名','用户名','密码','数据库名','表名或其它对象名')
整理了一些t-sql技巧

3、 如果要获取库里所有对象的脚本,如如下方式

整理了一些t-sql技巧declare @name varchar(250)
整理了一些t-sql技巧declare #aa cursor for
整理了一些t-sql技巧 select name from sysobjects where xtype not in('S','PK','D','X','L')
整理了一些t-sql技巧open #aa
整理了一些t-sql技巧fetch next from #aa into @name
整理了一些t-sql技巧while @@fetch_status=0
整理了一些t-sql技巧begin
整理了一些t-sql技巧 print dbo.fgetscript('onlytiancai','sa','sa','database',@name)
整理了一些t-sql技巧 fetch next from #aa into @name
整理了一些t-sql技巧end
整理了一些t-sql技巧close #aa
整理了一些t-sql技巧deallocate #aa
整理了一些t-sql技巧

4、 声明,此函数是csdn邹建邹老大提供的
三、 分隔字符串
如果有一个用逗号分割开的字符串,比如说"a,b,c,d,1,2,3,4",如何用t-sql获取这个字符串有几个元素,获取第几个元素的值是多少呢?因为t-sql里没有split函数,也没有数组的概念,所以只能自己写几个函数了。
1、 获取元素个数的函数

整理了一些t-sql技巧create function getstrarrlength (@str varchar(8000))
整理了一些t-sql技巧returns int
整理了一些t-sql技巧as
整理了一些t-sql技巧begin
整理了一些t-sql技巧  declare @int_return int
整理了一些t-sql技巧  declare @start int
整理了一些t-sql技巧  declare @next int
整理了一些t-sql技巧  declare @location int
整理了一些t-sql技巧  select @str =','+ @str +','
整理了一些t-sql技巧  select @str=replace(@str,',,',',')
整理了一些t-sql技巧  select @start =1
整理了一些t-sql技巧  select @next =1 
整理了一些t-sql技巧  select @location = charindex(',',@str,@start)
整理了一些t-sql技巧  while (@location <>0)
整理了一些t-sql技巧  begin
整理了一些t-sql技巧    select @start = @location +1
整理了一些t-sql技巧    select @location = charindex(',',@str,@start)
整理了一些t-sql技巧    select @next =@next +1
整理了一些t-sql技巧  end
整理了一些t-sql技巧 select @int_return = @next-2
整理了一些t-sql技巧 return @int_return
整理了一些t-sql技巧end
整理了一些t-sql技巧

2、 获取指定索引的值的函数

整理了一些t-sql技巧create function getstrofindex (@str varchar(8000),@index int =0)
整理了一些t-sql技巧returns varchar(8000)
整理了一些t-sql技巧as
整理了一些t-sql技巧begin
整理了一些t-sql技巧  declare @str_return varchar(8000)
整理了一些t-sql技巧  declare @start int
整理了一些t-sql技巧  declare @next int
整理了一些t-sql技巧  declare @location int
整理了一些t-sql技巧  select @start =1
整理了一些t-sql技巧  select @next =1 --如果习惯从0开始则select @next =0
整理了一些t-sql技巧  select @location = charindex(',',@str,@start)
整理了一些t-sql技巧  while (@location <>0 and @index > @next )
整理了一些t-sql技巧  begin
整理了一些t-sql技巧    select @start = @location +1
整理了一些t-sql技巧    select @location = charindex(',',@str,@start)
整理了一些t-sql技巧    select @next =@next +1
整理了一些t-sql技巧  end
整理了一些t-sql技巧  if @location =0 select @location =len(@str)+1 --如果是因为没有逗号退出,则认为逗号在字符串后
整理了一些t-sql技巧  select @str_return = substring(@str,@start,@location -@start) --@start肯定是逗号之后的位置或者就是初始值1
整理了一些t-sql技巧  if (@index <> @next ) select @str_return = '' --如果二者不相等,则是因为逗号太少,或者@index小于@next的初始值1。
整理了一些t-sql技巧  return @str_return
整理了一些t-sql技巧end
整理了一些t-sql技巧

3、 测试

整理了一些t-sql技巧SELECT [dbo].[getstrarrlength]('1,2,3,4,a,b,c,d')
整理了一些t-sql技巧SELECT [dbo].[getstrofindex]('1,2,3,4,a,b,c,d',5)
整理了一些t-sql技巧

四、 一条语句执行跨越若干个数据库
我要在一条语句里操作不同的服务器上的不同的数据库里的不同的表,怎么办呢?
第一种方法:

整理了一些t-sql技巧select * from OPENDATASOURCE('SQLOLEDB','Data Source=远程ip;User ID=sa;Password=密码').库名.dbo.表名
整理了一些t-sql技巧

第二种方法:
先使用联结服务器:

整理了一些t-sql技巧EXEC sp_addlinkedserver '别名','','MSDASQL',NULL,NULL,'DRIVER={SQL Server};SERVER=远程名;UID=用户;PWD=密码;'
整理了一些t-sql技巧exec sp_addlinkedsrvlogin  @rmtsrvname='别名',@useself='false',@locallogin='sa',@rmtuser='sa',@rmtpassword='密码'
整理了一些t-sql技巧GO
整理了一些t-sql技巧

然后你就可以如下:

整理了一些t-sql技巧select * from 别名.库名.dbo.表名
整理了一些t-sql技巧insert 库名.dbo.表名 select * from 别名.库名.dbo.表名
整理了一些t-sql技巧select * into 库名.dbo.新表名 from 别名.库名.dbo.表名
整理了一些t-sql技巧go
整理了一些t-sql技巧

五、 怎样获取一个表中所有的字段信息
蛙蛙推荐:怎样获取一个表中所有字段的信息
先创建一个视图

整理了一些t-sql技巧Create view fielddesc    
整理了一些t-sql技巧as
整理了一些t-sql技巧select o.name as table_name,c.name as field_name,t.name as type,c.length as 
整理了一些t-sql技巧
整理了一些t-sql技巧length,c.isnullable as isnullable,convert(varchar(30),p.value) as desp 
整理了一些t-sql技巧from syscolumns c  
整理了一些t-sql技巧join systypes t on c.xtype = t.xusertype
整理了一些t-sql技巧join sysobjects o on o.id=c.id 
整理了一些t-sql技巧left join    sysproperties p on p.smallid=c.colid and p.id=o.id    
整理了一些t-sql技巧where o.xtype='U'
整理了一些t-sql技巧
整理了一些t-sql技巧

查询时:

整理了一些t-sql技巧Select * from fielddesc where table_name = '你的表名'

 

还有个更强的语句,是邹建写的,也写出来吧

整理了一些t-sql技巧SELECT 
整理了一些t-sql技巧 (case when a.colorder=1 then d.name else '' end) N'表名',
整理了一些t-sql技巧 a.colorder N'字段序号',
整理了一些t-sql技巧 a.name N'字段名',
整理了一些t-sql技巧 (case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end) N'标识',
整理了一些t-sql技巧 (case when (SELECT count(*)
整理了一些t-sql技巧 FROM sysobjects
整理了一些t-sql技巧 WHERE (name in
整理了一些t-sql技巧           (SELECT name
整理了一些t-sql技巧          FROM sysindexes
整理了一些t-sql技巧          WHERE (id = a.id) AND (indid in
整理了一些t-sql技巧                    (SELECT indid
整理了一些t-sql技巧                   FROM sysindexkeys
整理了一些t-sql技巧                   WHERE (id = a.id) AND (colid in
整理了一些t-sql技巧                             (SELECT colid
整理了一些t-sql技巧                            FROM syscolumns
整理了一些t-sql技巧                            WHERE (id = a.id) AND (name = a.name))))))) AND
整理了一些t-sql技巧        (xtype = 'PK'))>0 then '√' else '' end) N'主键',
整理了一些t-sql技巧 b.name N'类型',
整理了一些t-sql技巧 a.length N'占用字节数',
整理了一些t-sql技巧 COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',
整理了一些t-sql技巧 isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',
整理了一些t-sql技巧 (case when a.isnullable=1 then '√'else '' end) N'允许空',
整理了一些t-sql技巧 isnull(e.text,'') N'默认值',
整理了一些t-sql技巧 isnull(g.[value],'') AS N'字段说明'
整理了一些t-sql技巧--into ##tx
整理了一些t-sql技巧
整理了一些t-sql技巧FROM  syscolumns  a left join systypes b 
整理了一些t-sql技巧on  a.xtype=b.xusertype
整理了一些t-sql技巧inner join sysobjects d 
整理了一些t-sql技巧on a.id=d.id  and  d.xtype='U' and  d.name<>'dtproperties'
整理了一些t-sql技巧left join syscomments e
整理了一些t-sql技巧on a.cdefault=e.id
整理了一些t-sql技巧left join sysproperties g
整理了一些t-sql技巧on a.id=g.id AND a.colid = g.smallid  
整理了一些t-sql技巧order by object_name(a.id),a.colorder
整理了一些t-sql技巧
整理了一些t-sql技巧

六、 时间格式转换问题
因为新开发的软件需要用一些旧软件生成的一些数据,在时间格式上不统一,只能手工转换,研究了一下午写了三条语句,以前没怎么用过convert函数和case语句,还有"+"操作符在不同上下文环境也会起到不同的作用,把我搞晕了要,不过现在看来是差不多弄好了。

1、把所有"70.07.06"这样的值变成"1970-07-06"

整理了一些t-sql技巧UPDATE lvshi
整理了一些t-sql技巧SET shengri = '19' + REPLACE(shengri, '.', '-')
整理了一些t-sql技巧WHERE (zhiyezheng = '139770070153')

 

2、在"1970-07-06"里提取"70","07","06"

整理了一些t-sql技巧SELECT SUBSTRING(shengri, 3, 2) AS year, SUBSTRING(shengri, 6, 2) AS month, 
整理了一些t-sql技巧      SUBSTRING(shengri, 9, 2) AS day
整理了一些t-sql技巧FROM lvshi
整理了一些t-sql技巧WHERE (zhiyezheng = '139770070153')
整理了一些t-sql技巧

3、把一个时间类型字段转换成"1970-07-06"

整理了一些t-sql技巧UPDATE lvshi
整理了一些t-sql技巧SET shenling = CONVERT(varchar(4), YEAR(shenling)) 
整理了一些t-sql技巧      + '-' + CASE WHEN LEN(MONTH(shenling)) = 1 THEN '0' + CONVERT(varchar(2), 
整理了一些t-sql技巧      month(shenling)) ELSE CONVERT(varchar(2), month(shenling)) 
整理了一些t-sql技巧      END + '-' + CASE WHEN LEN(day(shenling)) = 1 THEN '0' + CONVERT(char(2), 
整理了一些t-sql技巧      day(shenling)) ELSE CONVERT(varchar(2), day(shenling)) END
整理了一些t-sql技巧WHERE (zhiyezheng = '139770070153')
整理了一些t-sql技巧

七、 分区视图
分区视图是提高查询性能的一个很好的办法

整理了一些t-sql技巧--看下面的示例
整理了一些t-sql技巧
整理了一些t-sql技巧--示例表
整理了一些t-sql技巧create table tempdb.dbo.t_10(
整理了一些t-sql技巧id int primary key check(id between 1 and 10),name varchar(10))
整理了一些t-sql技巧
整理了一些t-sql技巧create table pubs.dbo.t_20(
整理了一些t-sql技巧id int primary key check(id between 11 and 20),name varchar(10))
整理了一些t-sql技巧
整理了一些t-sql技巧create table northwind.dbo.t_30(
整理了一些t-sql技巧id int primary key check(id between 21 and 30),name varchar(10))
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧--分区视图
整理了一些t-sql技巧create view v_t
整理了一些t-sql技巧as
整理了一些t-sql技巧select * from tempdb.dbo.t_10
整理了一些t-sql技巧union all
整理了一些t-sql技巧select * from pubs.dbo.t_20
整理了一些t-sql技巧union all
整理了一些t-sql技巧select * from northwind.dbo.t_30
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧--插入数据
整理了一些t-sql技巧insert v_t select 1 ,'aa'
整理了一些t-sql技巧union  all select 2 ,'bb'
整理了一些t-sql技巧union  all select 11,'cc'
整理了一些t-sql技巧union  all select 12,'dd'
整理了一些t-sql技巧union  all select 21,'ee'
整理了一些t-sql技巧union  all select 22,'ff'
整理了一些t-sql技巧
整理了一些t-sql技巧--更新数据
整理了一些t-sql技巧update v_t set name=name+'_更新' where right(id,1)=1
整理了一些t-sql技巧
整理了一些t-sql技巧--删除测试
整理了一些t-sql技巧delete from v_t where right(id,1)=2
整理了一些t-sql技巧
整理了一些t-sql技巧--显示结果
整理了一些t-sql技巧select * from v_t
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧--删除测试
整理了一些t-sql技巧drop table northwind.dbo.t_30,pubs.dbo.t_20,tempdb.dbo.t_10
整理了一些t-sql技巧drop view v_t
整理了一些t-sql技巧


八、 树型的实现
整理了一些t-sql技巧

整理了一些t-sql技巧--参考
整理了一些t-sql技巧
整理了一些t-sql技巧--树形数据查询示例
整理了一些t-sql技巧--作者: 邹建
整理了一些t-sql技巧
整理了一些t-sql技巧--示例数据
整理了一些t-sql技巧create table [tb]([id] int identity(1,1),[pid] int,name varchar(20))
整理了一些t-sql技巧insert [tb] select 0,'中国'
整理了一些t-sql技巧union  all  select 0,'美国'
整理了一些t-sql技巧union  all  select 0,'加拿大'
整理了一些t-sql技巧union  all  select 1,'北京'
整理了一些t-sql技巧union  all  select 1,'上海'
整理了一些t-sql技巧union  all  select 1,'江苏'
整理了一些t-sql技巧union  all  select 6,'苏州'
整理了一些t-sql技巧union  all  select 7,'常熟'
整理了一些t-sql技巧union  all  select 6,'南京'
整理了一些t-sql技巧union  all  select 6,'无锡'
整理了一些t-sql技巧union  all  select 2,'纽约'
整理了一些t-sql技巧union  all  select 2,'旧金山'
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧--查询指定id的所有子
整理了一些t-sql技巧create function f_cid(
整理了一些t-sql技巧@id int
整理了一些t-sql技巧)returns @re table([id] int,[level] int)
整理了一些t-sql技巧as
整理了一些t-sql技巧begin
整理了一些t-sql技巧 declare @l int
整理了一些t-sql技巧 set @l=0
整理了一些t-sql技巧 insert @re select @id,@l
整理了一些t-sql技巧 while @@rowcount>0
整理了一些t-sql技巧 begin
整理了一些t-sql技巧  set @l=@l+1
整理了一些t-sql技巧  insert @re select a.[id],@l
整理了一些t-sql技巧  from [tb] a,@re b
整理了一些t-sql技巧  where a.[pid]=b.[id] and b.[level]=@l-1
整理了一些t-sql技巧 end

 

九、 排序问题

整理了一些t-sql技巧CREATE TABLE [t] (
整理了一些t-sql技巧 [id] [int] IDENTITY (1, 1) NOT NULL ,
整理了一些t-sql技巧 [GUID] [uniqueidentifier] NULL 
整理了一些t-sql技巧) ON [PRIMARY]
整理了一些t-sql技巧GO


下面这句执行5次

整理了一些t-sql技巧insert t values (newid())


查看执行结果

整理了一些t-sql技巧select * from t


1、 第一种

整理了一些t-sql技巧select * from t
整理了一些t-sql技巧 order by case id when 4 then 1
整理了一些t-sql技巧                  when 5 then 2
整理了一些t-sql技巧                  when 1 then 3
整理了一些t-sql技巧                  when 2 then 4
整理了一些t-sql技巧                  when 3 then 5 end


2、 第二种

整理了一些t-sql技巧select * from t order by (id+2)%6


3、 第三种

整理了一些t-sql技巧select * from t order by charindex(cast(id as varchar),'45123')


4、 第四种

整理了一些t-sql技巧select * from t
整理了一些t-sql技巧WHERE id between 0 and 5
整理了一些t-sql技巧order by charindex(cast(id as varchar),'45123')


5、 第五种

整理了一些t-sql技巧select * from t order by case when id >3 then id-5 else id end


6、 第六种

整理了一些t-sql技巧select * from t order by id / 4 desc,id asc

 

十、 一条语句删除一批记录
首先id列是int标识类类型,然后删除ID值为5,6,8,9,10,11的列,这里的cast函数不能用convert函数代替,而且转换的类型必须是varchar,而不能是char,否则就会执行出你不希望的结果,这里的"5,6,8,9,10,11"可以是你在页面上获取的一个chkboxlist构建成的值,然后用下面的一句就全部删
除了,比循环用多条语句高效吧应该。

整理了一些t-sql技巧delete from [fujian] where charindex(','+cast([id] as varchar)+',',','+'5,6,8,9,10,11,'+',')>0


还有一种就是

整理了一些t-sql技巧delete from table1 where id in(1,2,3,4 整理了一些t-sql技巧)


十一、获取子表内的一列数据的组合字符串
下面这个函数获取05年已经注册了的某个所的律师,唯一一个参数就是事务所的名称,然后返回zhuce字段里包含05字样的所有律师。

整理了一些t-sql技巧CREATE   FUNCTION fn_Get05LvshiNameBySuo  (@p_suo Nvarchar(50))
整理了一些t-sql技巧RETURNS Nvarchar(2000)
整理了一些t-sql技巧AS
整理了一些t-sql技巧BEGIN  
整理了一些t-sql技巧 DECLARE @LvshiNames varchar(2000), @name varchar(50)
整理了一些t-sql技巧 select @LvshiNames=''
整理了一些t-sql技巧 DECLARE lvshi_cursor CURSOR FOR


数据库里有1,2,3,4,5 共5条记录,要用一条sql语句让其排序,使它排列成4,5,1,2,3,怎么写?

整理了一些t-sql技巧  --数据操作 
整理了一些t-sql技巧

整理了一些t-sql技巧   
SELECT --从数据库表中检索数据行和列 
整理了一些t-sql技巧
      INSERT --向数据库表添加新数据行 
整理了一些t-sql技巧
      DELETE --从数据库表中删除数据行 
整理了一些t-sql技巧
      UPDATE --更新数据库表中的数据 
整理了一些t-sql技巧

整理了一些t-sql技巧  
--数据定义 
整理了一些t-sql技巧

整理了一些t-sql技巧   
CREATE TABLE --创建一个数据库表 
整理了一些t-sql技巧
      DROP TABLE --从数据库中删除表 
整理了一些t-sql技巧
      ALTER TABLE --修改数据库表结构 
整理了一些t-sql技巧
      CREATE VIEW --创建一个视图 
整理了一些t-sql技巧
      DROP VIEW --从数据库中删除视图 
整理了一些t-sql技巧
      CREATE INDEX --为数据库表创建一个索引 
整理了一些t-sql技巧
      DROP INDEX --从数据库中删除索引 
整理了一些t-sql技巧
      CREATE PROCEDURE --创建一个存储过程 
整理了一些t-sql技巧
      DROP PROCEDURE --从数据库中删除存储过程 
整理了一些t-sql技巧
      CREATE TRIGGER --创建一个触发器 
整理了一些t-sql技巧
      DROP TRIGGER --从数据库中删除触发器 
整理了一些t-sql技巧
      CREATE SCHEMA --向数据库添加一个新模式 
整理了一些t-sql技巧
      DROP SCHEMA --从数据库中删除一个模式 
整理了一些t-sql技巧
      CREATE DOMAIN --创建一个数据值域 
整理了一些t-sql技巧
      ALTER DOMAIN --改变域定义 
整理了一些t-sql技巧
      DROP DOMAIN --从数据库中删除一个域 
整理了一些t-sql技巧

整理了一些t-sql技巧  
--数据控制 
整理了一些t-sql技巧

整理了一些t-sql技巧   
GRANT --授予用户访问权限 
整理了一些t-sql技巧
      DENY --拒绝用户访问 
整理了一些t-sql技巧
      REVOKE --解除用户访问权限 
整理了一些t-sql技巧

整理了一些t-sql技巧  
--事务控制 
整理了一些t-sql技巧

整理了一些t-sql技巧   
COMMIT --结束当前事务 
整理了一些t-sql技巧
      ROLLBACK --中止当前事务 
整理了一些t-sql技巧
      SET TRANSACTION --定义当前事务数据访问特征 
整理了一些t-sql技巧

整理了一些t-sql技巧  
--程序化SQL 
整理了一些t-sql技巧

整理了一些t-sql技巧   
DECLARE --为查询设定游标 
整理了一些t-sql技巧
      EXPLAN --为查询描述数据访问计划 
整理了一些t-sql技巧
      OPEN --检索查询结果打开一个游标 
整理了一些t-sql技巧
      FETCH --检索一行查询结果 
整理了一些t-sql技巧
      CLOSE --关闭游标 
整理了一些t-sql技巧
      PREPARE --为动态执行准备SQL 语句 
整理了一些t-sql技巧
      EXECUTE --动态地执行SQL 语句 
整理了一些t-sql技巧
      DESCRIBE --描述准备好的查询   
整理了一些t-sql技巧

整理了一些t-sql技巧  
---局部变量 
整理了一些t-sql技巧

整理了一些t-sql技巧   
declare @id char(10
整理了一些t-sql技巧      
--set @id = '10010001' 
整理了一些t-sql技巧
      select @id = '10010001'   
整理了一些t-sql技巧
整理了一些t-sql技巧  
---全局变量 
整理了一些t-sql技巧

整理了一些t-sql技巧  
---必须以@@开头   
整理了一些t-sql技巧

整理了一些t-sql技巧  
--IF ELSE 
整理了一些t-sql技巧

整理了一些t-sql技巧  
declare @x int @y int @z int 
整理了一些t-sql技巧      
select @x = 1 @y = 2 @z=3 
整理了一些t-sql技巧      
if @x > @y 
整理了一些t-sql技巧       
print 'x > y' --打印字符串'x > y' 
整理了一些t-sql技巧
      else if @y > @z 
整理了一些t-sql技巧       
print 'y > z' 
整理了一些t-sql技巧      
else print 'z > y' 
整理了一些t-sql技巧      
--CASE 
整理了一些t-sql技巧
      use pangu 
整理了一些t-sql技巧      
update employee 
整理了一些t-sql技巧      
set e_wage = 
整理了一些t-sql技巧       
case 
整理了一些t-sql技巧       
when job_level = ’1’ then e_wage*1.08 
整理了一些t-sql技巧       
when job_level = ’2’ then e_wage*1.07 
整理了一些t-sql技巧       
when job_level = ’3’ then e_wage*1.06 
整理了一些t-sql技巧       
else e_wage*1.05 
整理了一些t-sql技巧       
end 
整理了一些t-sql技巧      
--WHILE CONTINUE BREAK 
整理了一些t-sql技巧
      declare @x int @y int @c int 
整理了一些t-sql技巧      
select @x = 1 @y=1 
整理了一些t-sql技巧      
while @x < 3 
整理了一些t-sql技巧       
begin 
整理了一些t-sql技巧       
print @x --打印变量x 的值 
整理了一些t-sql技巧
 while @y < 3 
整理了一些t-sql技巧       
begin 
整理了一些t-sql技巧       
select @c = 100*@x + @y 
整理了一些t-sql技巧       
print @c --打印变量c 的值 
整理了一些t-sql技巧
 select @y = @y + 1 
整理了一些t-sql技巧       
end 
整理了一些t-sql技巧       
select @x = @x + 1 
整理了一些t-sql技巧       
select @y = 1 
整理了一些t-sql技巧       
end 
整理了一些t-sql技巧      
--WAITFOR 
整理了一些t-sql技巧

整理了一些t-sql技巧  
--例 等待1 小时2 分零3 秒后才执行SELECT 语句 
整理了一些t-sql技巧

整理了一些t-sql技巧  
waitfor delay ’01:02:03’ 
整理了一些t-sql技巧      
select * from employee 
整理了一些t-sql技巧
整理了一些t-sql技巧    
--例 等到晚上11 点零8 分后才执行SELECT 语句 
整理了一些t-sql技巧

整理了一些t-sql技巧    
waitfor time ’23:08:00’ 
整理了一些t-sql技巧
整理了一些t-sql技巧
整理了一些t-sql技巧
SELECT   
整理了一些t-sql技巧
整理了一些t-sql技巧   
select *(列名) from table_name(表名) where column_name operator value ex宿主) 
整理了一些t-sql技巧     
select * from stock_information where stockid = str(nid) 
整理了一些t-sql技巧     stockname 
= 'str_name' 
整理了一些t-sql技巧     stockname 
like '% find this %' 
整理了一些t-sql技巧     stockname 
like '[a-zA-Z]%' --------- ([]指定值的范围) 
整理了一些t-sql技巧
     stockname like '[^F-M]%' --------- (^排除指定范围) 
整理了一些t-sql技巧
 --------- 只能在使用like关键字的where子句中使用通配符) 
整理了一些t-sql技巧
 or stockpath = 'stock_path' 
整理了一些t-sql技巧     
or stocknumber < 1000 
整理了一些t-sql技巧     
and stockindex = 24 
整理了一些t-sql技巧     
not stocksex = 'man' 
整理了一些t-sql技巧     stocknumber 
between 20 and 100 
整理了一些t-sql技巧     stocknumber 
in(10,20,30
整理了一些t-sql技巧     
order by stockid desc(asc--------- 排序,desc-降序,asc-升序 
整理了一些t-sql技巧
 order by 1,2 --------- by列号 
整理了一些t-sql技巧
     stockname = (select stockname from stock_information where stockid = 4
整理了一些t-sql技巧     
--------- 子查询 
整理了一些t-sql技巧
 --------- 除非能确保内层select只返回一个行的值 
整理了一些t-sql技巧
 --------- 否则应在外层where子句中用一个in限定符 
整理了一些t-sql技巧
 select distinct column_name form table_name 
整理了一些t-sql技巧   
--------- distinct指定检索独有的列值,不重复 
整理了一些t-sql技巧
 select stocknumber ,"stocknumber + 10= stocknumber + 10 from table_name 
整理了一些t-sql技巧     
select stockname , "stocknumber" = count(*from table_name group by stockname 
整理了一些t-sql技巧     
--------- group by 将表按行分组,指定列中有相同的值 
整理了一些t-sql技巧
 having count(*= 2 --------- having选定指定的组 
整理了一些t-sql技巧

整理了一些t-sql技巧   
select * 
整理了一些t-sql技巧     
from table1, table2 
整理了一些t-sql技巧
where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示 
整理了一些t-sql技巧
     table1.id =* table2.id -------- 右外部连接 
整理了一些t-sql技巧
 select stockname from table1 
整理了一些t-sql技巧     
union [all] -------- union合并查询结果集,all-保留重复行 
整理了一些t-sql技巧
 select stockname from table2  
整理了一些t-sql技巧
整理了一些t-sql技巧   
insert  
整理了一些t-sql技巧
整理了一些t-sql技巧   
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx" 
整理了一些t-sql技巧   value (
select Stockname , Stocknumber from Stock_table2) 
整理了一些t-sql技巧   
-------value为select语句   
整理了一些t-sql技巧

整理了一些t-sql技巧   
update   
整理了一些t-sql技巧
整理了一些t-sql技巧   
update table_name set Stockname = "xxx" [where Stockid = 3] 
整理了一些t-sql技巧   Stockname 
= default 
整理了一些t-sql技巧   Stockname 
= null 
整理了一些t-sql技巧   Stocknumber 
= Stockname + 4   
整理了一些t-sql技巧
整理了一些t-sql技巧   
delete   
整理了一些t-sql技巧
整理了一些t-sql技巧   
delete from table_name where Stockid = 3 
整理了一些t-sql技巧   
truncate table_name --------- 删除表中所有行,仍保持表的完整性 
整理了一些t-sql技巧
 drop table table_name --------- 完全删除表  
整理了一些t-sql技巧

整理了一些t-sql技巧   
alter table -------- 修改数据库表结构   
整理了一些t-sql技巧

整理了一些t-sql技巧   
alter table database.owner.table_name add column_name char(2null .. 
整理了一些t-sql技巧   sp_help table_name 
-------- 显示表已有特征 
整理了一些t-sql技巧
 create table table_name (name char(20), age smallint, lname varchar(30)) 
整理了一些t-sql技巧   
insert into table_name select -------- 实现删除列的方法(创建新表) 
整理了一些t-sql技巧
 alter table table_name drop constraint Stockname_default 
整理了一些t-sql技巧   
--------- 删除Stockname的default约束 
整理了一些t-sql技巧

整理了一些t-sql技巧
整理了一些t-sql技巧
整理了一些t-sql技巧
整理了一些t-sql技巧常用函数(
function)   
整理了一些t-sql技巧
整理了一些t-sql技巧    转换函数
整理了一些t-sql技巧
整理了一些t-sql技巧    
convert(数据类型,值,格式)
整理了一些t-sql技巧
整理了一些t-sql技巧  统计函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
AVG --求平均值 
整理了一些t-sql技巧
  COUNT --统计数目 
整理了一些t-sql技巧
  MAX --求最大值 
整理了一些t-sql技巧
  MIN --求最小值 
整理了一些t-sql技巧
  SUM --求和  
整理了一些t-sql技巧

整理了一些t-sql技巧  
AVG 
整理了一些t-sql技巧
整理了一些t-sql技巧  
use pangu 
整理了一些t-sql技巧  
select avg(e_wage) as dept_avgWage 
整理了一些t-sql技巧  
from employee 
整理了一些t-sql技巧  
group by dept_id   
整理了一些t-sql技巧
整理了一些t-sql技巧  
MAX 
整理了一些t-sql技巧
整理了一些t-sql技巧  
--求工资最高的员工姓名 
整理了一些t-sql技巧
  use pangu 
整理了一些t-sql技巧  
select e_name 
整理了一些t-sql技巧  
from employee 
整理了一些t-sql技巧  
where e_wage = 
整理了一些t-sql技巧   (
select max(e_wage) 
整理了一些t-sql技巧   
from employee)   
整理了一些t-sql技巧
整理了一些t-sql技巧  
STDEV() 
整理了一些t-sql技巧
整理了一些t-sql技巧  
--STDEV()函数返回表达式中所有数据的标准差 
整理了一些t-sql技巧
  --STDEVP() 
整理了一些t-sql技巧
  --STDEVP()函数返回总体标准差   
整理了一些t-sql技巧

整理了一些t-sql技巧  
VAR() 
整理了一些t-sql技巧
整理了一些t-sql技巧  
--VAR()函数返回表达式中所有值的统计变异数   
整理了一些t-sql技巧

整理了一些t-sql技巧  
VARP() 
整理了一些t-sql技巧
整理了一些t-sql技巧  
--VARP()函数返回总体变异数   
整理了一些t-sql技巧

整理了一些t-sql技巧  算术函数   
整理了一些t-sql技巧
整理了一些t-sql技巧  三角函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
SIN(float_expression) --返回以弧度表示的角的正弦 
整理了一些t-sql技巧
  COS(float_expression) --返回以弧度表示的角的余弦 
整理了一些t-sql技巧
  TAN(float_expression) --返回以弧度表示的角的正切 
整理了一些t-sql技巧
  COT(float_expression) --返回以弧度表示的角的余切 
整理了一些t-sql技巧

整理了一些t-sql技巧  反三角函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
ASIN(float_expression) --返回正弦是FLOAT 值的以弧度表示的角 
整理了一些t-sql技巧
  ACOS(float_expression) --返回余弦是FLOAT 值的以弧度表示的角 
整理了一些t-sql技巧
  ATAN(float_expression) --返回正切是FLOAT 值的以弧度表示的角 
整理了一些t-sql技巧
  ATAN2(float_expression1,float_expression2) 
整理了一些t-sql技巧   
------返回正切是float_expression1 /float_expres-sion2的以弧度表示的角 
整理了一些t-sql技巧
  DEGREES(numeric_expression) 
整理了一些t-sql技巧   
------把弧度转换为角度返回与表达式相同的数据类型可为 
整理了一些t-sql技巧
 ------INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  RADIANS(numeric_expression) 
整理了一些t-sql技巧
------把角度转换为弧度返回与表达式相同的数据类型可为 
整理了一些t-sql技巧

整理了一些t-sql技巧   
------INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  EXP(float_expression) --返回表达式的指数值 
整理了一些t-sql技巧
  LOG(float_expression) --返回表达式的自然对数值 
整理了一些t-sql技巧
  LOG10(float_expression)--返回表达式的以10 为底的对数值 
整理了一些t-sql技巧
  SQRT(float_expression) --返回表达式的平方根 
整理了一些t-sql技巧

整理了一些t-sql技巧  取近似值函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
CEILING(numeric_expression) 
整理了一些t-sql技巧
-------返回>=表达式的最小整数返回的数据类型与表达式相同可为 
整理了一些t-sql技巧
 -------INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  FLOOR(numeric_expression) 
整理了一些t-sql技巧
-------返回<=表达式的最小整数返回的数据类型与表达式相同可为 
整理了一些t-sql技巧
 -------INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  ROUND(numeric_expression) 
整理了一些t-sql技巧
-------返回以integer_expression 为精度的四舍五入值返回的数据 
整理了一些t-sql技巧
 -------类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  ABS(numeric_expression) 
整理了一些t-sql技巧
-------返回表达式的绝对值返回的数据类型与表达式相同可为 
整理了一些t-sql技巧
 -------INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  SIGN(numeric_expression) 
整理了一些t-sql技巧
-------测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型 
整理了一些t-sql技巧
 -------与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型 
整理了一些t-sql技巧
  PI() -------返回值为π 即3.1415926535897936 
整理了一些t-sql技巧
  RAND([integer_expression]
整理了一些t-sql技巧
-------用任选的[integer_expression]做种子值得出0-1 间的随机浮点数
整理了一些t-sql技巧

整理了一些t-sql技巧
整理了一些t-sql技巧字符串函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
ASCII() ------函数返回字符表达式最左端字符的ASCII 码值 
整理了一些t-sql技巧
  CHAR() ------函数用于将ASCII 码转换为字符 
整理了一些t-sql技巧
 ------如果没有输入0 ~ 255 之间的ASCII 码值CHAR 函数会返回一个NULL 值 
整理了一些t-sql技巧
  LOWER() ------函数把字符串全部转换为小写 
整理了一些t-sql技巧
  UPPER() ------函数把字符串全部转换为大写 
整理了一些t-sql技巧
  STR() ------函数把数值型数据转换为字符型数据 
整理了一些t-sql技巧
  LTRIM() ------函数把字符串头部的空格去掉 
整理了一些t-sql技巧
  RTRIM() ------函数把字符串尾部的空格去掉 
整理了一些t-sql技巧
  LEFT(),RIGHT(),SUBSTRING() --函数返回部分字符串 
整理了一些t-sql技巧
  CHARINDEX(),PATINDEX() --函数返回字符串中某个指定的子串出现的开始位置 
整理了一些t-sql技巧
  SOUNDEX() ------函数返回一个四位字符码 
整理了一些t-sql技巧
 ------SOUNDEX函数可用来查找声音相似的字符串但SOUNDEX函数对数字和汉字均只返回0 值 
整理了一些t-sql技巧
  DIFFERENCE() ------函数返回由SOUNDEX 函数返回的两个字符表达式的值的差异 
整理了一些t-sql技巧
 ------0 两个SOUNDEX 函数返回值的第一个字符不同 
整理了一些t-sql技巧
 ------1 两个SOUNDEX 函数返回值的第一个字符相同 
整理了一些t-sql技巧
 ------2 两个SOUNDEX 函数返回值的第一二个字符相同 
整理了一些t-sql技巧
 ------3 两个SOUNDEX 函数返回值的第一二三个字符相同 
整理了一些t-sql技巧
 ------4 两个SOUNDEX 函数返回值完全相同同 
整理了一些t-sql技巧
  QUOTENAME() ------函数返回被特定字符括起来的字符串 
整理了一些t-sql技巧

--NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回xpression1 的值 
整理了一些t-sql技巧*******************Transact_SQL********************
整理了一些t-sql技巧
整理了一些t-sql技巧
--语 句                                功 能
整理了一些t-sql技巧--
数据操作
整理了一些t-sql技巧
SELECT      --从数据库表中检索数据行和列
整理了一些t-sql技巧
INSERT      --向数据库表添加新数据行
整理了一些t-sql技巧
DELETE      --从数据库表中删除数据行
整理了一些t-sql技巧
UPDATE      --更新数据库表中的数据
整理了一些t-sql技巧--
数据定义
整理了一些t-sql技巧
CREATE TABLE    --创建一个数据库表
整理了一些t-sql技巧
DROP TABLE     --从数据库中删除表
整理了一些t-sql技巧
ALTER TABLE     --修改数据库表结构
整理了一些t-sql技巧
CREATE VIEW     --创建一个视图
整理了一些t-sql技巧
DROP VIEW     --从数据库中删除视图
整理了一些t-sql技巧
CREATE INDEX    --为数据库表创建一个索引
整理了一些t-sql技巧
DROP INDEX     --从数据库中删除索引
整理了一些t-sql技巧
CREATE PROCEDURE   --创建一个存储过程
整理了一些t-sql技巧
DROP PROCEDURE    --从数据库中删除存储过程
整理了一些t-sql技巧
CREATE TRIGGER    --创建一个触发器
整理了一些t-sql技巧
DROP TRIGGER    --从数据库中删除触发器
整理了一些t-sql技巧
CREATE SCHEMA    --向数据库添加一个新模式
整理了一些t-sql技巧
DROP SCHEMA     --从数据库中删除一个模式
整理了一些t-sql技巧
CREATE DOMAIN    --创建一个数据值域
整理了一些t-sql技巧
ALTER DOMAIN    --改变域定义
整理了一些t-sql技巧
DROP DOMAIN     --从数据库中删除一个域
整理了一些t-sql技巧--
数据控制
整理了一些t-sql技巧
GRANT      --授予用户访问权限
整理了一些t-sql技巧
DENY      --拒绝用户访问
整理了一些t-sql技巧
REVOKE      --解除用户访问权限
整理了一些t-sql技巧--
事务控制
整理了一些t-sql技巧
COMMIT      --结束当前事务
整理了一些t-sql技巧
ROLLBACK     --中止当前事务
整理了一些t-sql技巧
SET TRANSACTION    --定义当前事务数据访问特征
整理了一些t-sql技巧--
程序化SQL
整理了一些t-sql技巧
DECLARE      --为查询设定游标
整理了一些t-sql技巧
EXPLAN      --为查询描述数据访问计划
整理了一些t-sql技巧
OPEN      --检索查询结果打开一个游标
整理了一些t-sql技巧
FETCH      --检索一行查询结果
整理了一些t-sql技巧
CLOSE      --关闭游标
整理了一些t-sql技巧
PREPARE      --为动态执行准备SQL 语句
整理了一些t-sql技巧
EXECUTE      --动态地执行SQL 语句
整理了一些t-sql技巧
DESCRIBE     --描述准备好的查询
整理了一些t-sql技巧

整理了一些t-sql技巧
---局部变量
整理了一些t-sql技巧
declare @id char(10)
整理了一些t-sql技巧
--set @id = '10010001'
整理了一些t-sql技巧
select @id = '10010001'
整理了一些t-sql技巧
整理了一些t-sql技巧
---全局变量
整理了一些t-sql技巧--
-必须以@@开头
整理了一些t-sql技巧

整理了一些t-sql技巧
--IF ELSE
整理了一些t-sql技巧
declare @x int @y int @z int
整理了一些t-sql技巧
select @x = 1 @y = 2 @z=3
整理了一些t-sql技巧
if @x > @y
整理了一些t-sql技巧 
print 'x > y' --打印字符串'x > y'
整理了一些t-sql技巧
else if @y > @z
整理了一些t-sql技巧 
print 'y > z'
整理了一些t-sql技巧
else print 'z > y'
整理了一些t-sql技巧
整理了一些t-sql技巧
--CASE
整理了一些t-sql技巧
use pangu
整理了一些t-sql技巧
update employee
整理了一些t-sql技巧
set e_wage =
整理了一些t-sql技巧 
case
整理了一些t-sql技巧  
when job_level = ’1’ then e_wage*1.08
整理了一些t-sql技巧  
when job_level = ’2’ then e_wage*1.07
整理了一些t-sql技巧  
when job_level = ’3’ then e_wage*1.06
整理了一些t-sql技巧  
else e_wage*1.05
整理了一些t-sql技巧 
end
整理了一些t-sql技巧
整理了一些t-sql技巧
--WHILE CONTINUE BREAK
整理了一些t-sql技巧
declare @x int @y int @c int
整理了一些t-sql技巧
select @x = 1 @y=1
整理了一些t-sql技巧
while @x < 3
整理了一些t-sql技巧 
begin
整理了一些t-sql技巧  
print @x --打印变量x 的值
整理了一些t-sql技巧
  while @y < 3
整理了一些t-sql技巧   
begin
整理了一些t-sql技巧    
select @c = 100*@x + @y
整理了一些t-sql技巧    
print @c --打印变量c 的值
整理了一些t-sql技巧
    select @y = @y + 1
整理了一些t-sql技巧   
end
整理了一些t-sql技巧  
select @x = @x + 1
整理了一些t-sql技巧  
select @y = 1
整理了一些t-sql技巧 
end
整理了一些t-sql技巧
整理了一些t-sql技巧
--WAITFOR
整理了一些t-sql技巧--
例 等待1 小时2 分零3 秒后才执行SELECT 语句
整理了一些t-sql技巧
waitfor delay ’01:02:03
整理了一些t-sql技巧
select * from employee
整理了一些t-sql技巧
--例 等到晚上11 点零8 分后才执行SELECT 语句
整理了一些t-sql技巧
waitfor time ’23:08:00
整理了一些t-sql技巧
select * from employee
整理了一些t-sql技巧
整理了一些t-sql技巧 
整理了一些t-sql技巧
整理了一些t-sql技巧
***SELECT***
整理了一些t-sql技巧
整理了一些t-sql技巧   
select *(列名) from table_name(表名) where column_name operator value
整理了一些t-sql技巧   ex:(宿主)
整理了一些t-sql技巧  
select * from stock_information where stockid   = str(nid)
整理了一些t-sql技巧     stockname 
= 'str_name' 
整理了一些t-sql技巧     stockname 
like '% find this %' 
整理了一些t-sql技巧     stockname 
like '[a-zA-Z]%' --------- ([]指定值的范围)
整理了一些t-sql技巧
     stockname like '[^F-M]%'   --------- (^排除指定范围)
整理了一些t-sql技巧
     --------- 只能在使用like关键字的where子句中使用通配符)
整理了一些t-sql技巧
     or stockpath = 'stock_path'
整理了一些t-sql技巧     
or stocknumber < 1000
整理了一些t-sql技巧     
and stockindex = 24
整理了一些t-sql技巧     
not stocksex = 'man'
整理了一些t-sql技巧     stocknumber 
between 20 and 100
整理了一些t-sql技巧     stocknumber 
in(10,20,30)
整理了一些t-sql技巧     
order by stockid desc(asc--------- 排序,desc-降序,asc-升序
整理了一些t-sql技巧
     order by 1,2 --------- by列号
整理了一些t-sql技巧
     stockname = (select stockname from stock_information  where stockid  = 4)
整理了一些t-sql技巧     
--------- 子查询
整理了一些t-sql技巧
     --------- 除非能确保内层select只返回一个行的值,
整理了一些t-sql技巧
     --------- 否则应在外层where子句中用一个in限定符
整理了一些t-sql技巧
  select distinct column_name form table_name --------- distinct指定检索独有的列值,不重复
整理了一些t-sql技巧
  select stocknumber ,"stocknumber + 10= stocknumber + 10 from table_name
整理了一些t-sql技巧  
select stockname , "stocknumber" = count(*from table_name group by stockname
整理了一些t-sql技巧                                      
--------- group by 将表按行分组,指定列中有相同的值
整理了一些t-sql技巧
          having count(*= 2  ---------  having选定指定的组
整理了一些t-sql技巧
        
整理了一些t-sql技巧  
select * 
整理了一些t-sql技巧  
from table1, table2                  
整理了一些t-sql技巧  
where table1.id *= table2.id -------- 左外部连接,table1中有的而table2中没有得以null表示
整理了一些t-sql技巧
     table1.id =* table2.id -------- 右外部连接 
整理了一些t-sql技巧

整理了一些t-sql技巧  
select stockname from table1
整理了一些t-sql技巧  
union [all]  -----  union合并查询结果集,all-保留重复行
整理了一些t-sql技巧
  select stockname from table2
整理了一些t-sql技巧
整理了一些t-sql技巧
***insert***
整理了一些t-sql技巧
整理了一些t-sql技巧  
insert into table_name (Stock_name,Stock_number) value ("xxx","xxxx")
整理了一些t-sql技巧              value (
select Stockname , Stocknumber from Stock_table2)---value为select语句
整理了一些t-sql技巧

整理了一些t-sql技巧
***update***
整理了一些t-sql技巧
整理了一些t-sql技巧  
update table_name set Stockname = "xxx" [where Stockid = 3]
整理了一些t-sql技巧         Stockname 
= default
整理了一些t-sql技巧         Stockname 
= null
整理了一些t-sql技巧         Stocknumber 
= Stockname + 4
整理了一些t-sql技巧
整理了一些t-sql技巧
***delete***
整理了一些t-sql技巧
整理了一些t-sql技巧  
delete from table_name where Stockid = 3
整理了一些t-sql技巧  
truncate table_name ----------- 删除表中所有行,仍保持表的完整性
整理了一些t-sql技巧
  drop table table_name --------------- 完全删除表
整理了一些t-sql技巧

整理了一些t-sql技巧
***alter table*** --- 修改数据库表结构
整理了一些t-sql技巧

整理了一些t-sql技巧  
alter table database.owner.table_name add column_name char(2null 整理了一些t-sql技巧..
整理了一些t-sql技巧  sp_help table_name 
---- 显示表已有特征
整理了一些t-sql技巧
  create table table_name (name char(20), age smallint, lname varchar(30))
整理了一些t-sql技巧  
insert into table_name select 整理了一些t-sql技巧整理了一些t-sql技巧整理了一些t-sql技巧 ----- 实现删除列的方法(创建新表)
整理了一些t-sql技巧
  alter table table_name drop constraint Stockname_default ---- 删除Stockname的default约束
整理了一些t-sql技巧
    
NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值

相关文章:

  • 2021-09-28
  • 2021-06-22
  • 2022-12-23
  • 2021-08-06
  • 2021-10-16
猜你喜欢
相关资源
相似解决方案