博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
SQL 中常用的功能函数,自定义的功能行数
阅读量:6445 次
发布时间:2019-06-23

本文共 1935 字,大约阅读时间需要 6 分钟。

在SQL Server指定的数据库中,有Programmability目录,在这个目录下,有存储过程,有功能函数。

 

 

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER function   [dbo].[fn_10to36]   ( 	@i   int ) returns   varchar(30) as begin 	declare  @r  varchar(30) 	set   @r= '' 	declare  @m  int 	declare  @s  int 	set   @s=@i 	while   @s> =36 	begin 		set   @m=@s   %   36 		set   @r=case   when   @m <10   then   cast(@m   as   varchar)   			else   cast(char(ascii( 'A')+@m-10)   as   varchar)   end+@r 		set   @s=@s/36 	end 		if   @s> 0   or   (@s=0   and   @r= '') 			set   @r=case   when   @s <10   then   cast(@s   as   varchar)   		else   cast(char(ascii( 'A')+@s-10)   as   varchar)   end+@r 	return   @r end   

 

比如上述,执行

is not a recognized function name.

 上面报错,因为要加dbo.[function], 

 

select dbo.[fn_10to36_ByJasmine] (101) 即可

 

 

 

下面是36wei转10位

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER function   [dbo].[fn_36to10]   ( @str   varchar(30) ) returns   intas begin declare @returnValue intselect @returnValue = 0declare @str36 varchar(32)declare @subWork varchar(1)declare @workIndex intselect @str36 = '123456789ABCDEFGHIJKLMNOPQRSTUVWSYZ'declare @len intdeclare @i intselect @i = 1select @len = datalength(@str)while (@i <= @len)begin	select @subWork = SUBSTRING(@str, @i, 1) 	select @workIndex = charindex( @subWork, @str36)	select @returnValue = @returnValue + (@workIndex * power(36, @len-@i))	select @i = @i + 1endreturn   @returnValue end

  

 

前面再带个参数的

CREATE FUNCTION [DBO].[FN_10TO36] (@I INT,@B VARCHAR(10))RETURNS VARCHAR(30)AS BEGINDECLARE @R VARCHAR(30)SET @R=''DECLARE @M INT DECLARE @S INTSET @S=@IWHILE @S>=36BEGINSET @M=@S %36 ----取余SET @R=CASE WHEN @M<10 THEN CAST(@M AS VARCHAR)ELSE CAST(CHAR(ASCII('A')+@M-10)AS VARCHAR) END +@RSET @S=@S/36   -----取值ENDIF @S>0 OR (@S=0 AND @R='')SET @R=CASE WHEN @S<10 THEN CAST(@S AS VARCHAR)ELSE CAST(CHAR(ASCII('A')+@S-10) AS VARCHAR ) END +@RRETURN @B+RIGHT('0000'+@R,5)END

  

转载于:https://www.cnblogs.com/qianjinyan/p/10057259.html

你可能感兴趣的文章
docker建立私有仓库
查看>>
python之匿名函数lambda
查看>>
默认值设置
查看>>
SourceTree超前一个版本,落后N个版本
查看>>
2.3-docker网络-如何让外部网络访问容器资源
查看>>
Innodb优化之修改页大小
查看>>
误设置所有程序都默认成一种方式打开
查看>>
ubuntu ctrl+c ctrl+z ctrl+d
查看>>
SpringMVC---Method
查看>>
永中Office2012青年版下载用户反馈(节选二)
查看>>
css特效实现html表格显示部分内容,当鼠标移上去显示全部。
查看>>
oracle-rownum的理解
查看>>
我的友情链接
查看>>
使用cin.get()而不是system("pause")来避免c++程序一闪而过
查看>>
20分钟mysql入门教程
查看>>
简单的交换两个变量的数值
查看>>
Linux服务器上配置2个Tomcat或者多个Tomcat
查看>>
学习计划书
查看>>
CentOS7安装过程中,磁盘大于2T的报错处理
查看>>
第2章 多态
查看>>