我们常常碰到需要将用户输入之字符串依特定的分隔符转换为表的一个栏位,下面是我写的一个sql函数.如能灵活运用则用途广泛.

-- =============================================
-- Author: honhwa
-- Create date: 2014/09/02
-- Description: Convert String to Table
-- =============================================
CREATE FUNCTION [dbo].[fn_StringToTable]
(
@str NVARCHAR(MAX) = '', @split NVARCHAR(30) = ','
)
RETURNS
@TempView TABLE
(
Cond NVARCHAR(MAX), Seq INT
)
AS
BEGIN
DECLARE @i INT = 1, @seq INT = 1
DECLARE @cond NVARCHAR(MAX) = '' SELECT @str = @str + @split WHILE CHARINDEX(@split, @str , @i) > 0 Begin
SELECT @cond = SUBSTRING(@str, @i, CHARINDEX(@split, @str, @i) - @i)
IF @cond <> ''
INSERT @TempView(Cond, Seq) VALUES(@cond, @seq)
SELECT @i = CHARINDEX(@split, @str, @i) + 1, @seq = @seq + 1
END
RETURN
END

示例 : SELECT * FROM fn_StringToTable('aaa,bbb,ccc,ddd,eee,fffff,sssss', ',') fstt

Cond    Seq
aaa 1
bbb 2
ccc 3
ddd 4
eee 5
fffff 6
sssss 7

sql 将字符串转换为表的更多相关文章

  1. T-SQL Table-valued Function使用分隔符将字符串转换为表

    )=' ') RETURNS @Strings TABLE ( ITEM_VALUE VARCHAR(MAX) ) AS BEGIN DECLARE @index INT ) BEGIN SET @i ...

  2. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  3. Sql Server 中将由逗号“,”分割的一个字符串转换为一个表集,并应用到 in 条件中

    Sql Server 中将由逗号“,”分割的一个字符串,转换为一个表,并应用与 in 条件 ,,) 这样的语句和常用,但是如果in 后面的 1,2,3是变量怎么办呢,一般会用字符串连接的方式构造sql ...

  4. mssql sqlserver sql对使用逗号分隔的字符串 转换为数据表的另类方法实现

    转自:http://www.maomao365.com/?p=10739 摘要: 下文讲述在sqlserver 对逗号分隔的字符串转换为数据表的另类方法实现,如下所示: 实验环境:sql server ...

  5. 将某个日期字符串转换为java.sql.Date的类型

    import java.text.ParseException; import java.text.SimpleDateFormat; public class date { /** * @param ...

  6. sql server将字符串转换为 uniqueidentifier 时失败

    sql server查询中出现 将字符串转换为 uniqueidentifier 时失败异常 原因为id设置为uniqueidentifier 字段,在where查询时需要做转换cast(id as ...

  7. mysql里面如何用sql语句让字符串转换为数字

    sql语句将字符串转换为数字默认去掉单引号中的空格,遇到空格作为字符串截止, SELECT '123 and 1=1' +0 结果为123 MySQL里面如何用sql语句让字符串的‘123’转换为数字 ...

  8. SQL 字符串分割表函数

    --字符串分割表函数 ) ) declare @i int; declare @count int; ); ); declare @Index int; )) declare @rowID int; ...

  9. SQL中字符串截取、连接、替换等函数的用法

    一.SQL中SUBSTRING函数的用法1.功能:返回字符.二进制.文本或图像表达式的一部分2.语法:SUBSTRING ( expression, start, length )3.QL 中的 su ...

随机推荐

  1. HR外包系统 - 薪资项目分类

    序号    薪资项目编码规则    6到9开头1    普通工资项目加项    7开头三位,7XX,不够时,从71XX开始2    普通工资项目减项    8开头三位,8XX,不够时,从81XX开始3 ...

  2. tcflush 功能(转)

    tcflush() 丢弃要写入引用的对象,但是尚未传输的数据,或者收到但是尚未读取的数据,取决于 queue_selector 的值: TCIFLUSH 刷新收到的数据但是不读 TCOFLUSH 刷新 ...

  3. markdown使用总结

    # markdown简介> Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的HTML页面. —— [维基百科]( https://zh.w ...

  4. 用Access作为后台数据库支撑。

    /// <summary> /// 读取Excel文档 /// </summary> /// <param name="Path">文件名称&l ...

  5. 【java基础】内存分析

    在上次我们说的<重载与重写>呢,我们遗留了一个问题,就是运行结果的各异性,那今天,我们就来探究一下         内存里的天地.                  首先呢,我们把mian ...

  6. node.js整理 05进程管理

    简介 NodeJS可以感知和控制自身进程的运行环境和状态,也可以创建子进程并与其协同工作,这使得NodeJS可以把多个程序组合在一起共同完成某项工作,并在其中充当胶水和调度器的作用 常用API Pro ...

  7. iOS Xcode behaviors个人常用Debug配置

  8. MVC Autofac 注入点

    关键句: ** DependencyResolver.SetResolver(new AutofacDependencyResolver(container));** protected overri ...

  9. 获取iframe的元素并进行操作

    获取iframe中的document元素有一下集中方法: 1.getElementById()方法和contentWindow属性: window.onload=function(){ /*必须等待页 ...

  10. header元素

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...