常用Sql 标量值函数
1、汉字拼音首字母

/****** Object: UserDefinedFunction [dbo].[fnGetHzPY]
Script Date: 08/16/2018 09:04:47 Description:获取汉字拼音首字母(简拼)
******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE FUNCTION [dbo].[fnGetHzPY]
(
@str NVARCHAR()
)
RETURNS NVARCHAR()
AS
BEGIN
DECLARE @WORD nchar(), @PY nvarchar()
SET @PY=''
WHILE LEN(@str) >
BEGIN
SET @WORD = left(@str,)
--如果非汉字字符,返回原字符
SET @PY = @PY +
(CASE
WHEN UNICODE(@WORD) BETWEEN and +
THEN (SELECT top PY FROM (
SELECT 'A' as PY,N'驁' as WORD
UNION all SELECT 'B',N'簿'
UNION all SELECT 'C',N'錯'
UNION all SELECT 'D',N'鵽'
UNION all SELECT 'E',N'樲'
UNION all SELECT 'F',N'鰒'
UNION all SELECT 'G',N'腂'
UNION all SELECT 'H',N'夻'
UNION all SELECT 'J',N'攈'
UNION all SELECT 'K',N'穒'
UNION all SELECT 'L',N'鱳'
UNION all SELECT 'M',N'旀'
UNION all SELECT 'N',N'桛'
UNION all SELECT 'O',N'漚'
UNION all SELECT 'P',N'曝'
UNION all SELECT 'Q',N'囕'
UNION all SELECT 'R',N'鶸'
UNION all SELECT 'S',N'蜶'
UNION all SELECT 'T',N'籜'
UNION all SELECT 'W',N'鶩'
UNION all SELECT 'X',N'鑂'
UNION all SELECT 'Y',N'韻'
UNION all SELECT 'Z',N'咗'
) T
WHERE WORD >= @WORD COLLATE Chinese_PRC_CS_AS_KS_WS
ORDER BY PY ASC)
ELSE @WORD
END)
SET @str = Right(@str,LEN(@str) - )
END
RETURN @PY
END
GO
2、将数字转换为中文数字

/****** Object: UserDefinedFunction [dbo].[fnGetChinaStringA]
Script Date: 08/16/2018 09:11:59
Description:将数字转换成中文数字
******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE FUNCTION [dbo].[fnGetChinaNumber]
(
@Word INT
)
RETURNS VARCHAR()
AS
BEGIN
DECLARE @varChinaDateString VARCHAR(),
@varReturn VARCHAR(),
@varWord VARCHAR(),
@I SMALLINT SET @varChinaDateString = '〇一二三四五六七八九'
SET @varWord = CAST(@Word AS VARCHAR)
SET @I =
SET @varReturn = '' WHILE @I <= LEN(@varWord)
BEGIN
SET @varReturn = @varReturn + SUBSTRING(@varChinaDateString, SUBSTRING(@varWord,@I,) + , )
SET @I = @I +
END RETURN @varReturn
END GO
3、函数:将字符串转换为Table数据集

/****** Object: UserDefinedFunction [dbo].[fnParaSplit]
Script Date: 08/16/2018 09:25:38
Description:将字符串转换成表
******/
SET ANSI_NULLS ON
GO SET QUOTED_IDENTIFIER ON
GO CREATE FUNCTION [dbo].[fnParaSplit]
(
@SplitString NVARCHAR(MAX),
@Separator CHAR() = ','
)
RETURNS @SplitStringsTable TABLE
(
[FID] INT IDENTITY(, ),
[Item] VARCHAR()
)
AS
BEGIN
DECLARE @CurrentIndex INT,
@NextIndex INT,
@ReturnText VARCHAR() SET @CurrentIndex = WHILE (@CurrentIndex <= DATALENGTH(@SplitString) / )
BEGIN
SET @NextIndex = CHARINDEX(@Separator, @SplitString, @CurrentIndex) IF(@NextIndex = OR @NextIndex IS NULL)
SELECT @NextIndex = DATALENGTH(@SplitString) / + SET @ReturnText = CONVERT(VARCHAR(), SUBSTRING(@SplitString, @CurrentIndex, @NextIndex-@CurrentIndex)) INSERT INTO @SplitStringsTable
([Item])
VALUES
(@ReturnText) SET @CurrentIndex = @NextIndex +
END RETURN
END GO
附:后续遇到补充。。。
常用Sql 标量值函数的更多相关文章
- SQL标量值函数:小写金额转大写
我们日常开发业务系统中,作为统计报表中,特别是财务报表,显示中文金额经常遇到. 转换大小写的方法有很多,以下是从数据库函数方面解决这一问题. 效果如图: 调用:SELECT dbo.[Fn_Conve ...
- SQL标量值函数:返回汉字拼音首拼
今天遇到一个需求,客户要求在系统客户端选择客户的时候,可以用拼音首拼去快速过滤选择,此时我们在客户表里面加多一个拼音首拼字段CustPY来记录,字段加好了,我们要把所有客户名称的拼音简拼都更新到Cus ...
- sql标量值函数,将汉字转化为拼音,无音标
USE [db_Test]GO SET ANSI_NULLS ONGO SET QUOTED_IDENTIFIER ONGO create function [dbo].[fn_GetPinyin]( ...
- SQL表值函数和标量值函数的区别
SQL表值函数和标量值函数的区别 写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的, ...
- sql 表值函数与标量值函数
写sql存储过程经常需要调用一些函数来使处理过程更加合理,也可以使函数复用性更强,不过在写sql函数的时候可能会发现,有些函数是在表值函数下写的有些是在标量值下写的,区别是表值函数只能返回一个表,标量 ...
- sql server 中的表值函数和标量值函数
顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一.表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例 ...
- sql中的表值函数与标量值函数区别与用法
通俗来讲: 听名字就知道区别了 表值函数返回的是一张表结果,就和一个select查询语句一样,只不过里面带入了参数或者很复杂:标量值函数返回的只是一个值 一 .表值函数又分为内联函数与多语句函数 (1 ...
- sqlserver 表值函数与标量值函数
除了在我们常用的程序开发中要用到函数外,在sql语句中也常用到函数,不论哪种,思想都没有变,都是为了封装,可复用. 创建的方法和整体结构都大体相同,都少不了函数名,函数的形参,返回值等这些. 一.表值 ...
- sqlserver中的表值函数和标量值函数
顾名思义:表值函数返回的是表,而标量值函数可以返回基类型 一.表值函数 用户定义表值函数返回 table 数据类型.对于内联表值函数,没有函数主体:表是单个 SELECT 语句的结果集. 以下示例创建 ...
随机推荐
- RPD Volume 168 Issue 4 March 2016 评论1
GEANT4 calculations of neutron dose in radiation protection using a homogeneous phantom and a Chines ...
- 【枚举】URAL - 2081 - Faulty dial
//._. ... ._. ._. ... ._. ._. ._. ._. ._. //|.| ..| ._| ._| |_| |_. |_. ..| |_| |_| //|_| ..| |_. ._ ...
- 将千克转换成磅 Exercise05_03
/** * @author 冰樱梦 *题目:将千克转换成磅 *时间:2018年下半年 */ public class Exercise05_03 { public static void main(S ...
- 踩的ssh坑
先说下事情的起因,手贱删掉了~/.ssh下的所有文件,包括authorized_keys,id_rsa,id_rsa.pub,以及known_hosts.其实,这四个文件本来就是没有的,id_rsa和 ...
- SQL Server 存储过程小结
Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø ...
- lsof/fuser卸载挂载文件
Linux如何卸载挂载文件 在我们进行远程文件操作的时候,我们经常会出现文件服务出现卸载掉哦情况.例如 umount /mnt/net1umount: /mnt/net1: device is b ...
- ASP.NET MVC file download sample
ylbtech- ASP.NET MVC:ASP.NET MVC file download sample 功能描述:ASP.NET MVC file download sample 2,Techno ...
- ubuntu16.04给普通用戸提成root权限,会出现造成重启系统,没有登录用户
一.导致问题的原因 直接修改配置文件提权,会造成重启系统后没有原来的登录用户 vim /etc/passwd nulige:x:0:0:nulige,,,:/home/gree:/bin/bash 解 ...
- http://blog.sina.com.cn/s/blog_62e1faba010147k4.html
http://blog.sina.com.cn/s/blog_62e1faba010147k4.html
- [Python爬虫] 之二十六:Selenium +phantomjs 利用 pyquery抓取智能电视网站图片信息
一.介绍 本例子用Selenium +phantomjs爬取智能电视网站(http://www.tvhome.com/news/)的资讯信息,输入给定关键字抓取图片信息. 给定关键字:数字:融合:电视 ...