遇到这样一个问题,存储在数据库的数据是一串字符串如:1,2,3,4,5,6。想把这串字符串进行转变成一个表格,如下:

1
2
3
4
5
6

就是这样一个问题,有人同事,写了一个这样的封装函数,这样就方便多了,使用方法如下:

DECLARE @IdString nvarchar(max)
Select @IdString=FMenu from dbo.T_Groups where Fgroupsid=1
DECLARE @tTable TABLE ( tId int )
INSERT @tTable ( tId ) select Item from dbo.Func_Splitstring(@IdString,',')

字符串分割函数:

set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go ALTER FUNCTION [dbo].[Func_Splitstring]
(
@IdList NVARCHAR(MAX),--传进来的Id列表
@split VARCHAR(10) --分隔符号
)
--返回的临时表@table,以及字段Item
RETURNS @table TABLE ( Item INT )
AS
BEGIN
DECLARE @i INT
DECLARE @j INT SET @i = 1
SET @j = 1 WHILE(@i > 0)
BEGIN
SET @i = CHARINDEX(@split, @IdList, @j)
IF(@i>0)
BEGIN
INSERT @table ( Item ) VALUES ( SUBSTRING(@IdList, @j, @i - @j))
END
ELSE
BEGIN
INSERT @table ( Item ) VALUES (SUBSTRING(@IdList, @j, LEN(@IdList) - @j + 1))
END
SET @j = @i + 1
END
RETURN
END

附:

CHARINDEX 函数
返回字符或者字符串在另一个字符串中的起始位置。
CHARINDEX 函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1 是要到 expression2 中寻找的字符中,start_location 是 CHARINDEX 函数开始在 expression2 中找expression1 的位置。
CHARINDEX 函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如 CHARINDEX 没有找到要找的字符串,那么函数整数“0”。

MSSQLSERVER数据库- 字符串分割函数返回类型表的更多相关文章

  1. 从标准输入读取一行数组并保存(用的是字符串分割函数strtok_s() )

    首先介绍字符串分割函数: char *strtok_s( char *strToken, //字符串包含一个标记或一个以上的标记. const char *strDelimit, //分隔符的设置 c ...

  2. hive函数 -- split 字符串分割函数

    hive字符串分割函数 split(str, regex) - Splits str around occurances that match regexTime taken: 0.769 secon ...

  3. SQL点滴3—一个简单的字符串分割函数

    原文:SQL点滴3-一个简单的字符串分割函数 偶然在电脑里看到以前保存的这个函数,是将一个单独字符串切分成一组字符串,这里分隔符是英文逗号“,”  遇到其他情况只要稍加修改就好了 CREATE FUN ...

  4. vector作为函数返回类型

    在实际的操作中,我们经常会碰到需要返回一序列字符串或者一列数字的时候,以前会用到数组来保存这列的字符串或者数字,现在我们可以用vector来保存这些数据.但是当数据量很大的时候使用vector效率就比 ...

  5. Delphi 自带的字符串分割函数split

    下面介绍Delphi自带的字符串分割函数,根据你的需要来使用. 1.ExtractStrings function ExtractStrings(Separators, WhiteSpace: TSy ...

  6. JavaScript中字符串分割函数split用法实例

    这篇文章主要介绍了JavaScript中字符串分割函数split用法,实例分析了javascript中split函数操作字符串的技巧,非常具有实用价值,需要的朋友可以参考下 本文实例讲述了JavaSc ...

  7. c/c++: c++函数返回类型什么情况带const

    c++ 函数的返回类型,包括const 什么时候起作用呢? 函数返回值不想其立即修改的. 例子如下,这是一个简单的避免产生隐形返回变量的方法,abc 的函数返回是引用,main函数中第10行,++ 操 ...

  8. Split字符串分割函数

    非常非常常用的一个函数Split字符串分割函数. Dim myTest myTest = "aaa/bbb/ccc/ddd/eee/fff/ggg" Dim arrTest arr ...

  9. ASP.NET中常用的字符串分割函数

    asp.net字符串分割函数用法 先来看个简单的实例 但是其数组长度却是25,而不是3.下面这种方法是先将“[111cn.net]”替换成一个特殊字符,比如$,在根据这个字符执行Split 例如下面我 ...

随机推荐

  1. css 多行显示省略号....

    CSS属性如下: white-space: nowrap; overflow: hidden; text-overflow: ellipsis;

  2. linux(centos)如何查看文件夹大小

    参考http://zhidao.baidu.com/link?url=OrfDgdHvyA1pSDAy6ql-IgPBWtvcS5AR9bc543zTr1hLIDfCd42nYtNBplAl2pHvM ...

  3. .NET中的加密算法总结(自定义加密Helper类续)

    1.1.1 摘要 相信许多人都使用过.NET提供的加密算法,而且在使用的过程我们必须了解每种加密算法的特点(对称或非对称,密钥长度和初始化向量等等).我也看到过很多人写过.NET中加密算法总结,但我发 ...

  4. javaScript Code 用javascript确定每月第二个星期五

    废话少说只就上Code:     说明:getDay()方法获取星期(这里的星期是从0到6).参见:http://www.w3school.com.cn/js/js_obj_date.asp 中的ge ...

  5. android对大图片的缓存处理

    废话不多说,直接上代码 package com.huge.emj.common.util; import java.io.File; import java.io.FileInputStream; i ...

  6. 在eclipse中将项目发布到tomcat的root目录

    (1)设置项目上下文,右击项目-properties   >Web Page Edit

  7. 配置Pycharm3.4.1调试edX Devstack

    前提: 1.安装好Ubuntu 2.在Ubuntn上利用vagrant+VirtualBox 搭建好了edX Developer Stack,并能成功访问 3.在Ubuntu下安装好了Pycharm- ...

  8. Android 滑动菜单SlidingMenu

    首先我们看下面视图: 这种效果大家都不陌生,网上好多都说是仿人人网的,估计人家牛逼出来的早吧,我也参考了一一些例子,实现起来有三种方法,我下面简单介绍下: 方法一:其实就是对GestureDetect ...

  9. apache开源项目--lucence

    Lucene 是apache软件基金会一个开放源代码的全文检索引擎工具包,是一个全文检索引擎的架构,提供了完整的查询引擎和索引引擎,部分文本分析引擎.Lucene的目的是为软件开发人员提供一个简单易用 ...

  10. BrnShop开源网上商城第三讲:插件的工作机制

    这几天BrnShop的开发工作比较多,所以这一篇文章来的晚了一些,还请大家见谅呀!还有通知大家一下BrnShop1.0.312版本已经发布,此版本添加了报表统计等新功能,需要源码的园友可以点此下载.好 ...