整理了一些t-sql技巧

把长日期转换为短日期   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技巧id          name       
整理了一些t-sql技巧----------- ---------- 
整理了一些t-sql技巧1           aa_更新
整理了一些t-sql技巧11          cc_更新
整理了一些t-sql技巧21          ee_更新
整理了一些t-sql技巧
整理了一些t-sql技巧(所影响的行数为 3 行)
整理了一些t-sql技巧==*/
整理了一些t-sql技巧 整理了一些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技巧 整理了一些t-sql技巧/**//**//**//*--如果只显示最明细的子(下面没有子),则加上这个删除
整理了一些t-sql技巧 delete a from @re a
整理了一些t-sql技巧 where exists(
整理了一些t-sql技巧  select 1 from [tb] where [pid]=a.[id])
整理了一些t-sql技巧--*/
整理了一些t-sql技巧 return
整理了一些t-sql技巧end
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧--调用(查询所有的子)
整理了一些t-sql技巧select a.*,层次=b.[level] from [tb] a,f_cid(2)b where a.[id]=b.[id]
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧--删除测试
整理了一些t-sql技巧drop table [tb]
整理了一些t-sql技巧drop function f_cid
整理了一些t-sql技巧go
整理了一些t-sql技巧
整理了一些t-sql技巧

 

九、 排序问题

整理了一些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 ( 2 null  .. 
整理了一些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技巧

整理了一些t-sql技巧  
/**/ /*select quotename('abc', '{') quotename('abc') 
整理了一些t-sql技巧  运行结果如下 
整理了一些t-sql技巧
整理了一些t-sql技巧  { 
整理了一些t-sql技巧  {abc} [abc]
*/
 
整理了一些t-sql技巧  
REPLICATE ()  -- ----函数返回一个重复character_expression 指定次数的字符串 
整理了一些t-sql技巧
   /**/ /*select replicate('abc', 3) replicate( 'abc', -2) 
整理了一些t-sql技巧
整理了一些t-sql技巧  运行结果如下 
整理了一些t-sql技巧
整理了一些t-sql技巧  abcabcabc NULL
*/
 
整理了一些t-sql技巧  
REVERSE ()  -- ----函数将指定的字符串的字符排列顺序颠倒 
整理了一些t-sql技巧
   REPLACE ()  -- ----函数返回被替换了指定子串的字符串 
整理了一些t-sql技巧
   /**/ /*select replace('abc123g', '123', 'def') 
整理了一些t-sql技巧
整理了一些t-sql技巧  运行结果如下 
整理了一些t-sql技巧   
整理了一些t-sql技巧  abcdefg
*/
   
整理了一些t-sql技巧
整理了一些t-sql技巧  
SPACE ()  -- ----函数返回一个有指定长度的空白字符串 
整理了一些t-sql技巧
   STUFF ()  -- ----函数用另一子串替换字符串指定位置长度的子串   
整理了一些t-sql技巧

整理了一些t-sql技巧  数据类型转换函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
CAST () 函数语法如下 
整理了一些t-sql技巧  
CAST () (  AS  [  length  ]
整理了一些t-sql技巧  
CONVERT () 函数语法如下 
整理了一些t-sql技巧  
CONVERT () ( [  length  ] [ , style ]
整理了一些t-sql技巧  
select  cast ( 100 + 99  as  char convert ( varchar ( 12 ),  getdate ()) 
整理了一些t-sql技巧
整理了一些t-sql技巧  运行结果如下 
整理了一些t-sql技巧  
199  Jan  15  2000   
整理了一些t-sql技巧
整理了一些t-sql技巧  日期函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
DAY ()  -- ----函数返回date_expression 中的日期值 
整理了一些t-sql技巧
   MONTH ()  -- ----函数返回date_expression 中的月份值 
整理了一些t-sql技巧
   YEAR ()  -- ----函数返回date_expression 中的年份值 
整理了一些t-sql技巧
   DATEADD ( , ,) 
整理了一些t-sql技巧   
-- ---函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期 
整理了一些t-sql技巧
   DATEDIFF ( , ,) 
整理了一些t-sql技巧   
-- ---函数返回两个指定日期在datepart 方面的不同之处 
整理了一些t-sql技巧

整理了一些t-sql技巧  
DATENAME ( ,   -- ----函数以字符串的形式返回日期的指定部分 
整理了一些t-sql技巧
   DATEPART ( ,   -- ----函数以整数值的形式返回日期的指定部分 
整理了一些t-sql技巧
   GETDATE ()  -- ----函数以DATETIME 的缺省格式返回系统当前的日期和时间   
整理了一些t-sql技巧

整理了一些t-sql技巧  系统函数 
整理了一些t-sql技巧
整理了一些t-sql技巧  
APP_NAME ()  -- ----函数返回当前执行的应用程序的名称 
整理了一些t-sql技巧
   COALESCE ()  -- ---函数返回众多表达式中第一个非NULL 表达式的值 
整理了一些t-sql技巧
   COL_LENGTH ( < ' table_name ' > < ' column_name ' >  -- --函数返回表中指定字段的长度值 
整理了一些t-sql技巧
   COL_NAME (,   -- --函数返回表中指定字段的名称即列名 
整理了一些t-sql技巧
   DATALENGTH ()  -- ---函数返回数据表达式的数据的实际长度 
整理了一些t-sql技巧
   DB_ID ( [ 'database_name' ] -- ----函数返回数据库的编号 
整理了一些t-sql技巧
   DB_NAME (database_id)  -- ----函数返回数据库的名称 
整理了一些t-sql技巧
   HOST_ID ()  -- ---函数返回服务器端计算机的名称 
整理了一些t-sql技巧
   HOST_NAME ()  -- ---函数返回服务器端计算机的名称 
整理了一些t-sql技巧
   IDENTITY ( [ , seed increment ] [ AS column_name ]
整理了一些t-sql技巧   
-- IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中 
整理了一些t-sql技巧
   /**/ /*select identity(int, 1, 1) as column_name 
整理了一些t-sql技巧   into newtable 
整理了一些t-sql技巧   from oldtable
*/
 
整理了一些t-sql技巧
整理了一些t-sql技巧  
ISDATE ()  -- --函数判断所给定的表达式是否为合理日期 
整理了一些t-sql技巧
   ISNULL (,   -- 函数将表达式中的NULL 值用指定值替换 
整理了一些t-sql技巧
   ISNUMERIC ()  -- --函数判断所给定的表达式是否为合理的数值 
整理了一些t-sql技巧
   NEWID ()  -- --函数返回一个UNIQUEIDENTIFIER 类型的数值 
整理了一些t-sql技巧
   NULLIF (,  
整理了一些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 ( 2 null  整理了一些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技巧
    
整理了一些t-sql技巧
*** function ( /*常用函数*/ ) ***
整理了一些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技巧
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技巧
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技巧--
STDEV()函数返回表达式中所有数据的标准差
整理了一些t-sql技巧

整理了一些t-sql技巧
-- STDEVP()
整理了一些t-sql技巧--
STDEVP()函数返回总体标准差
整理了一些t-sql技巧

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

整理了一些t-sql技巧
-- VARP()
整理了一些t-sql技巧--
VARP()函数返回总体变异数
整理了一些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技巧
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技巧
         -- 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技巧
CEILING (numeric_expression)   -- 返回>=表达式的最小整数返回的数据类型与表达式相同可为
整理了一些t-sql技巧
         -- INTEGER/MONEY/REAL/FLOAT 类型
整理了一些t-sql技巧
FLOOR (numeric_expression)     -- 返回<=表达式的最小整数返回的数据类型与表达式相同可为
整理了一些t-sql技巧
         -- INTEGER/MONEY/REAL/FLOAT 类型
整理了一些t-sql技巧
ROUND (numeric_expression)     -- 返回以integer_expression 为精度的四舍五入值返回的数据
整理了一些t-sql技巧
         -- 类型与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
整理了一些t-sql技巧
ABS (numeric_expression)       -- 返回表达式的绝对值返回的数据类型与表达式相同可为
整理了一些t-sql技巧
         -- INTEGER/MONEY/REAL/FLOAT 类型
整理了一些t-sql技巧
SIGN (numeric_expression)      -- 测试参数的正负号返回0 零值1 正数或-1 负数返回的数据类型
整理了一些t-sql技巧
         -- 与表达式相同可为INTEGER/MONEY/REAL/FLOAT 类型
整理了一些t-sql技巧
PI ()        -- 返回值为π 即3.1415926535897936
整理了一些t-sql技巧
RAND ( [ integer_expression ] )    -- 用任选的[integer_expression]做种子值得出0-1 间的随机浮点数
整理了一些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技巧
                                       
整理了一些t-sql技巧
整理了一些t-sql技巧
QUOTENAME ()   -- 函数返回被特定字符括起来的字符串
整理了一些t-sql技巧
/*select quotename('abc', '{') quotename('abc')
整理了一些t-sql技巧运行结果如下
整理了一些t-sql技巧----------------------------------{
整理了一些t-sql技巧{abc} [abc]
*/

整理了一些t-sql技巧
整理了一些t-sql技巧
REPLICATE ()      -- 函数返回一个重复character_expression 指定次数的字符串
整理了一些t-sql技巧
/*select replicate('abc', 3) replicate( 'abc', -2)
整理了一些t-sql技巧运行结果如下
整理了一些t-sql技巧----------- -----------
整理了一些t-sql技巧abcabcabc NULL
*/

整理了一些t-sql技巧
整理了一些t-sql技巧
REVERSE ()        -- 函数将指定的字符串的字符排列顺序颠倒
整理了一些t-sql技巧
REPLACE ()        -- 函数返回被替换了指定子串的字符串
整理了一些t-sql技巧
/*select replace('abc123g', '123', 'def')
整理了一些t-sql技巧运行结果如下
整理了一些t-sql技巧----------- -----------
整理了一些t-sql技巧abcdefg
*/

整理了一些t-sql技巧
整理了一些t-sql技巧
SPACE ()    -- 函数返回一个有指定长度的空白字符串
整理了一些t-sql技巧
STUFF ()    -- 函数用另一子串替换字符串指定位置长度的子串
整理了一些t-sql技巧

整理了一些t-sql技巧
整理了一些t-sql技巧
-- --数据类型转换函数----
整理了一些t-sql技巧
CAST () 函数语法如下
整理了一些t-sql技巧
CAST () ( < expression >  AS  < data_ type > [  length  ] )
整理了一些t-sql技巧
CONVERT () 函数语法如下
整理了一些t-sql技巧
CONVERT () ( < data_ type > [  length  ] < expression >  [ , style ] )
整理了一些t-sql技巧
整理了一些t-sql技巧
select  cast ( 100 + 99  as  char convert ( varchar ( 12 ),  getdate ())
整理了一些t-sql技巧运行结果如下
整理了一些t-sql技巧
-- ---------------------------- ------------
整理了一些t-sql技巧
199    Jan  15  2000
整理了一些t-sql技巧
整理了一些t-sql技巧
-- --日期函数----
整理了一些t-sql技巧
DAY ()    -- 函数返回date_expression 中的日期值
整理了一些t-sql技巧
MONTH ()    -- 函数返回date_expression 中的月份值
整理了一些t-sql技巧
YEAR ()    -- 函数返回date_expression 中的年份值
整理了一些t-sql技巧
DATEADD ( < datepart >  , < number >  , < date >
整理了一些t-sql技巧    
-- 函数返回指定日期date 加上指定的额外日期间隔number 产生的新日期
整理了一些t-sql技巧
DATEDIFF ( < datepart >  , < number >  , < date > )
整理了一些t-sql技巧    
-- 函数返回两个指定日期在datepart 方面的不同之处
整理了一些t-sql技巧
DATENAME ( < datepart >  ,  < date > )   -- 函数以字符串的形式返回日期的指定部分
整理了一些t-sql技巧
DATEPART ( < datepart >  ,  < date > )   -- 函数以整数值的形式返回日期的指定部分
整理了一些t-sql技巧
GETDATE ()   -- 函数以DATETIME 的缺省格式返回系统当前的日期和时间
整理了一些t-sql技巧

整理了一些t-sql技巧
-- --系统函数----
整理了一些t-sql技巧
APP_NAME ()       -- 函数返回当前执行的应用程序的名称
整理了一些t-sql技巧
COALESCE ()   -- 函数返回众多表达式中第一个非NULL 表达式的值
整理了一些t-sql技巧
COL_LENGTH ( < ' table_name ' > < ' column_name ' > -- 函数返回表中指定字段的长度值
整理了一些t-sql技巧
COL_NAME ( < table_id > < column_id > )    -- 函数返回表中指定字段的名称即列名
整理了一些t-sql技巧
DATALENGTH ()  -- 函数返回数据表达式的数据的实际长度
整理了一些t-sql技巧
DB_ID ( [ 'database_name' ] -- 函数返回数据库的编号
整理了一些t-sql技巧
DB_NAME (database_id)   -- 函数返回数据库的名称
整理了一些t-sql技巧
HOST_ID ()      -- 函数返回服务器端计算机的名称
整理了一些t-sql技巧
HOST_NAME ()      -- 函数返回服务器端计算机的名称
整理了一些t-sql技巧
IDENTITY ( < data_type > [ , seed increment ] [ AS column_name ] )
整理了一些t-sql技巧 
-- IDENTITY() 函数只在SELECT INTO 语句中使用用于插入一个identity column列到新表中
整理了一些t-sql技巧
/*select identity(int, 1, 1) as column_name
整理了一些t-sql技巧 into newtable
整理了一些t-sql技巧 from oldtable
*/

整理了一些t-sql技巧
ISDATE ()   -- 函数判断所给定的表达式是否为合理日期
整理了一些t-sql技巧
ISNULL ( < check_expression > < replacement_value > -- 函数将表达式中的NULL 值用指定值替换
整理了一些t-sql技巧
ISNUMERIC ()   -- 函数判断所给定的表达式是否为合理的数值
整理了一些t-sql技巧
NEWID ()    -- 函数返回一个UNIQUEIDENTIFIER 类型的数值
整理了一些t-sql技巧
NULLIF ( < expression1 > < expression2 > )
整理了一些t-sql技巧 
-- NULLIF 函数在expression1 与expression2 相等时返回NULL 值若不相等时则返回expression1 的值

你可能感兴趣的:(t-sql)