zoukankan      html  css  js  c++  java
  • sqlserver中利用Tran_sql把逗号分隔的字符串拆成临时表

    在与数据库交互的过程中,我们经常需要把一串ID组成的字符串当作参数传给存储过程获取数据。很多时候我们希望把这个字符串转成集合以方便用于in操作。 有两种方式可以方便地把这个以某种符号分隔的ID字符串转成临时表。 

    方式一:通过charindex和substring。 

    代码
    /************************************************************
     * Code formatted by SoftTree SQL Assistant ?v6.5.278
     * Time: 2015/8/4 11:22:40
     ************************************************************/
    CREATE FUNCTION func_splitstring
    (
     @str       NVARCHAR(MAX),
     @split     VARCHAR(10)
    )
    RETURNS @t TABLE(c1 VARCHAR(100))
    AS
    BEGIN
     DECLARE @i INT
     DECLARE @s INT
     SET @i = 1
     SET @s = 1
     WHILE (@i > 0)
     BEGIN
         SET @i = CHARINDEX(@split, @str, @s)
         IF (@i > 0)
         BEGIN
             INSERT @t
               (
                 c1
               )
             VALUES
               (
                 SUBSTRING(@str, @s, @i -@s)
               )
         END
         ELSE
         BEGIN
             INSERT @t
               (
                 c1
               )
             VALUES
               (
                 SUBSTRING(@str, @s, LEN(@str) -@s + 1)
               )
         END
         SET @s = @i + 1
     END
     RETURN
    END

    执行:select * from  dbo.func_splitstring('1,2,3,4,5,6', ',')

  • 相关阅读:
    研究下线程投递
    IOCP笔记
    线程同步之mutex和Semaphore
    线程同步之mutex和event区别
    MyStack
    unix环境高级编程 读书笔记
    binary search tree study
    技术博客地址搜集
    select收数据
    奇怪的问题
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/6270200.html
Copyright © 2011-2022 走看看