• 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', ',')

  • 相关阅读:
    case when then else end
    spark读文件写入mysql(scala版本)
    mysql语句
    spark读文件写mysql(java版)
    spark的广播变量
    hive,把一个表中计算好的数据,存到另一个外部表中
    spark操作hive方式(scala)
    spark sql启动优化
    hive on spark (spark2.0.0 hive2.3.3)
    hive优化,开启压缩功能
  • 原文地址:https://www.cnblogs.com/zhangxiaolei521/p/6270200.html
Copyright © 2020-2023  润新知