1:用rand() 函数 可以产生0~1的随机float型数据。
2:select NULL+'21313132' 返回NULL,NULL和任何字符串连接都是空。
3:select top 1 .....order by newid() 可以随机选择一条记录。(该语句很有用)。
4:什么是动态的sql语句。给个示例:
(注意动态sql中字符串命令必须为UNICODE码,并且在字符串和变量连接的时候有空格)
declare @sqlstring nvarchar(100)
declare @tableName nvarchar(20)
set @tableName='kch'
set @sqlstring='select * from ' + @tableName
exec sp_executesql @sqlstring
再给一个例子:
Alter PROCEDURE dbo.Test
@seltab varchar(500)
AS
begin
declare @count int
declare @sql nvarchar(1000)
set @sql = N'select @count = count(*) from '+@seltab
exec sp_executesql @sql,N'@count int Output',@count Output--都加上Output
if @count>0
print 'exists'
else
print 'no'
end
RETURN
再给一个例子:
declare @sqlstring nvarchar(100)
declare @tableName nvarchar(20)
declare @name nvarchar(20)
set @name='math'
set @tableName='kch'
set @sqlstring='select * from '+ @tablename +' where name= @name'
exec sp_executesql @sqlstring,N'@name nvarchar(20)',@name
5:自定义的变量赋值的时候必须用set ,select (不论是否第一次赋值)。(如上4中)
6:Sql Server默认是不区分大小写的,如果你用Math作为值来查询,math也会出现在查询结果中。
7:select top 数量 from ......where...... order by ...句型很有用。比如获取考试成绩前几名的信息。
8:from后面一般是表对象,但也可以是查询结果。如select ... from table1,(select ... from ...where) table2 where...
例子:
select r.* from
RepairRecord r,
(select CID,max(RepaieTime) as RepaieTime from RepairRecord group by CID) a
where r.CID=a.CID and r.RepaieTime=a.RepaieTime
order by id
9:向表中添加标识列,add id int identity(1,1)
10:stuff函数:stuff(字符串,整数,整数,字符串) 示例:stuff('mingchao',2,3,'go') ,结 果: mgochao.从第2个字符开始删除3个字符,再插入go.就是用go代替第2个字符开始的3个字符。
11:SQL Server2000中3个未公布的三个加密函数。前两个函数是不可逆加密。可以用来加密数据库中的密码信息。
(1):Encrypt(string1)
(2):pwdencrypt(string2)
(3):pwdcompare('加密前的明文',加密后的密文(是用pwdencrypt加密的)) --比较,返回1相等,0则反之。
12:生成临时表
select * into temp from tb where ... --生成临时表temp 和tb一样的结构,并且存放tb中的数据
添加一列select * ,'hello' as hello into temp from tb where ... --添加了一列,并赋值‘hello’
13:判断某对象是否存在if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[studentinfo]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)
评论