SQL SERVICE 拆分字符串的表值函数】的更多相关文章

SQL代码 ALTER FUNCTION [dbo].[SplitToTable]( @SplitString nvarchar(max), @Separator nvarchar(10)=' ')RETURNS @SplitStringsTable TABLE([id] int identity(1,1),[value] nvarchar(max))ASBEGIN DECLARE @CurrentIndex int; DECLARE @NextIndex int; DECLARE @Retur…
表值函数就是返回table 的函数使用它可以方便的进行查询的处理 创建的代码如下: create FUNCTION returunclassfirstlist(  -- Add the parameters for the function here )RETURNS TABLE ASRETURN ( -- Add the SELECT statement with parameter references here select * from classfirst;) 我们在使用创建的函数的时…
一.拆分字符串为若干行 例一:要求将表emp中的'king'按照每行一个单词拆成四行 注意:substr(str,pos):截取pos位置开始的字符: substr(str,pos,len):从pos位置开始,选出接下去的len个字符 表emp: eid ename 1 ring 2 king 3 ting 4 ping 首先,建立表tmp(基干表,为了配合表一使用): tid 1 2 3 4 5 然后,select emp.ename,tmp.tid from emp,tmp where em…
函数一: std::string CheckString(std::string& strSource) { std::string strOldValue = "'"; std::string strNewValue = "''"; ); pos != std::string::npos; pos += strNewValue.length()) { if ((pos = strSource.find(strOldValue, pos)) != std::…
declare @DisciplineID int declare @paramStringVal nvarchar() declare @NPNT nvarchar() declare @DisciplineMapping nvarchar() declare @UEIDCount int declare @NPNTDisciplineMapping nvarchar() declare @rownum2 int declare @split nvarchar() set @split=';'…
CREATE FUNCTION [dbo].[Fn_Split] ( @SplitString text, -- 如果要传入NText类型,下面需要相应的修改,注释行为NText下同 ) = ','-- NVarChar(2) = N',' ) RETURNS @SplitStringsTable TABLE ( ,), ) -- NVarChar(4000) ) AS BEGIN --------@CurrentIndex记录当前的Index的值,@NextIndex记录字符串中下一个Inde…
PL/SQL字符串 PL/SQL字符串实际上是一个可选的尺寸规格字符序列.字符可以是数字,字母,空白,特殊字符或全部的组合. PL/SQL提供了三种类型的字符串: 固定长度字符串:在这样的字符串,程序员指定的长度,同时声明该字符串.该字符串是右填充空格以达到指定的长度. 变长字符串:在这样的字符串,最大长度可达32,767,为字符串指定,并不需要填充. 字符大对象(CLOB):这是可变长度的字符串,可以达到128兆兆字节. PL/ SQL字符串可以是变量或字面值.字符串文字被引号围在内部.例如,…
USE [tms]GO/****** Object: UserDefinedFunction [dbo].[fn_StrToTable_Double] Script Date: 2017/4/26 9:07:38 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGO-- =============================================-- Author: HXQ-- Create date: 2016年8月9日18:0…
功能与.net版string.Split函数类似,只不过.net返回的是数组,这个返回的是一个单列表格,每个拆分出来的子串占一行.可选是否移除空格子串和重复项.市面上类似的函数不算少,但大多都是在循环中对原串进行改动,我感觉这样不好,虽然不知道sql的字符串是不是像.net的一样具有不可变性,但感觉尽量不要去动原串最好,万一sql的字串也不可变,那变一次就要产生一份,尤其是每圈循环都在变,内存消耗让人心疼,所以才有重新造个轮子的想法. 另外,如果SQL开启了CLR支持,完全可以封装一个.net的…
将字符串分割为表表经常用到,这里 SQL表值函数与CLR  表值函数,两种实现方法例出来如下: SELECT * FROM FP_EMSDB_PUB.dbo.SqlSplit('/','1oz/1.5oz/2oz/3oz') 效果如下: SQL实现表值函数 CREATE FUNCTION [dbo].[splitStr]( @s varchar(max), --待分拆的字符串 ) --数据分隔符 ),), col varchar(max)) --建立临时表保存分割后的字符 AS BEGIN DE…