常用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 语句的结果集. 以下示例创建 ...
随机推荐
- 加快Vue项目的开发速度
巧用Webpack Webpack是实现我们前端项目工程化的基础,但其实她的用处远不仅仅如此,我们可以通过Webpack来帮我们做一些自动化的事情.首先我们要了解require.context()这个 ...
- ubuntu下如何查找某个文件的路径
1.whereis 文件名 特点:快速,但是是模糊查找,例如 找 #whereis mysql 它会把mysql,mysql.ini,mysql.*所在的目录都找出来. 2.find / -name ...
- 【二分答案】【最大流】bzoj3130 [Sdoi2013]费用流
二分最大的边的cap,记作Lim. 把所有的边的cap设为min(Lim,cap[i]). Bob一定会把单位费用加到最大边上. #include<cstdio> #include< ...
- [CF321C]Ciel the Commander
题目大意: 给你一棵n个结点的树,给每个结点分级,最高为'A',最低为'Z'. 尝试构造一种分级方案,使得任意两个相同级别的结点路径上至少有一个更高级的结点. 思路: 贪心+树上点分. 递归处理每一棵 ...
- MR实现--矩阵乘法
import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.io ...
- ios中将事件同步到系统日历
//获取日历事件 EKEventStore* eventStore = [[EKEventStorealloc] init]; NSDate* ssdate = [NSDatedateWithTime ...
- 一些常用JS 函数总结
搜索url参数 /** * 搜索url参数 * @param {String} name 参数键名 * @return {String} 对应值 */ function getQueryVariabl ...
- 所见即所得的网页设计工具 Macaw
所见即所得的网页设计工具 Macaw: 2014年最具前景的12款创新产品 1\ http://macaw.co/ 2\ http://www.kickstarter.com/projects ...
- 《linux 内核全然剖析》 chapter 4 80x86 保护模式极其编程
80x86 保护模式极其编程 首先我不得不说.看这章真的非常纠结...看了半天.不知道这个东西能干嘛.我感觉唯一有点用的就是对于内存映射的理解...我假设不在底层给80x86写汇编的话.我 ...
- Office 2007 SP3 正试版补丁包下载
这仅仅是下载补丁包.下载地址也是微软官网的.以下是MD5是我下载后校验的. 2007 Microsoft Office 套件 Service Pack 3 (SP3) 文件名: office2007s ...