月度归档:2018年03月

mssql sqlserver 自定义函数知识分享


摘要:
用户自定义函数可以同db内置函数一样,具有相同的功能,可以返回标量值和返回表值,
下文将着重讲述两种自定义的写法和用法。



sql自定义函数注意事项:
函数中含有的 SELECT 语句无法向客户端返回数据。
函数中最后一条语句必须是返回语句。

————————————-
自定义函数分类:
1 标量函数:返回一个标量值
2 表值函数:返回一个表格函数(行集数据)
————————————
标志函数和标量函数的区别在于,
一个是返回单个值,
一个是返回数据表多行集合数据。
————————————

一、标量函数

标量函数的语法简介:
create function 函数名(函数参数)
return 返回数据类型
[with encryption]
as
begin
sql语句
(函数结尾必须有return 返回值)
end
———————————–
例:

 /*创建标量自定义函数*/
create function fn_test (@a varchar(10))  
returns varchar(20)
as 
begin
  declare @b varchar(100)
  set @b =@a+'测试自定义函数' 
  return @b
end

go

/*执行自定义函数*/
select dbo.fn_test('maomao365.com')
  
go
/*删除自定义函数*/ 
drop function fn_test
mssql_sqlserver_自定义标量函数

mssql_sqlserver_自定义标量函数



二、表量函数

表量函数语法如下:
create function 函数名(函数参数)
return 临时表变量 table(表结构)
[with encryption]
as
begin
sql语句 –生成表变量数据

return;
end
————————————
例:

  /*创建表值自定义函数*/
create function fn_test (@a varchar(60))  
returns  @t table(name varchar(60))
as 
begin 
insert into @t(name)values(@a)
 return 
end
go
/*执行自定义函数*/
select * from  dbo.fn_test('maomao365.com')
  
go
/*删除自定义函数*/ 
drop function fn_test
mssql_sqlserver_自定义表值函数

mssql_sqlserver_自定义表值函数

mssql sqlserver 数据库如何将一个 guid数据全部替换为0


摘要:
下文将讲述一种将guid类型全部替换为0的方法分享,
由于sql server中没有正则表达式的用法,所以我们需采用笨办法,一步一步的替换数据

guid类型简介
guid格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,
其中每个 x 是 0-9 或 a-f 范围内的一个十六进制的数字。
例如:0FF32001-00D6-4D6B-B247-5C0C6F23FB03 即为有效的 GUID 值。
下文我们将采用依次替换所有字符的方法处理此guid数据
——————————————————
例:

 /*
项目中可将此方法转换为sql函数
*/
 
declare @a uniqueidentifier
set @a =lower(newId())---转换为小写

set @a =replace(@a,'1','0')
set @a =replace(@a,'2','0')
set @a =replace(@a,'3','0')
set @a =replace(@a,'4','0')
set @a =replace(@a,'5','0')
set @a =replace(@a,'6','0')
set @a =replace(@a,'7','0')
set @a =replace(@a,'8','0')
set @a =replace(@a,'9','0')
set @a =replace(@a,'a','0')
set @a =replace(@a,'b','0')
set @a =replace(@a,'c','0')
set @a =replace(@a,'d','0')
set @a =replace(@a,'e','0')
set @a =replace(@a,'f','0') 
print '转换后的guid:'+convert(varchar(36),@a)
mssql_sqlserver_guid转换为0

mssql_sqlserver_guid转换为0

mssql sql server sql脚本比较运算符用法简介


摘要:
下文主要讲述sql脚本中,比较运算符的使用方法


sql 比较运算符简介:
sql 比较运算符常常同select 关键字一起使用,达到限制条件的作用

= 等于。对于两个完全一样的值,运算符将返回True

<> 不等于。对于两个不完全一样的值,运算符将返回True
! = 不等于。这个运算符与“< >”运算符功能一样。
> 大于。当一个值大于另一个值时,运算符将返回True。
> = 大于或等于。当一个值大于或等于另一个值时,运算符将返回True。

!> 不大于。该操作符不常用,它等同<操作符
< 小于。当一个值小于另一个值时,运算符将返回True
< = 小于或等于。当一个值小于或等于另一个值时,运算符将返回True
! < 不小于。该操作符不常用,它等同>操作符

————————————————————
例:

 --定义一个产品进货表
create table A
(keyId int identity,name varchar(30),
qty int,price decimal(10,2)
)
go
insert into A(name,qty,price)
values('A',1,120),('B',2,30),
('C',3,40),('A',4,60),
('B',5,70),('F',6,80),
('G',7,90),('H',8,6)
go
  
 select * from A where qty =5   --数量等于5
 select * from A where qty <>5  --数量不等于5
 select * from A where qty !=5  --数量不等于5
 select * from A where qty >5   --数量大于5
 select * from A where qty >=5  --数量大于等于5
 select * from A where qty !>5   --数量不大于5
 select * from A where qty <5    --数量小于5
 select * from A where qty <=5   --数量小于等于5
 select * from A where qty !<5    ---数量不小于等于5      

go
truncate table A 
drop table A