最近项目调取存储的时候直接传入string 作为in的查询范围,结果报错了,深思之后才发现,数据库对于传进来的String,并不是我们想的直接可以作为参数,而是作为一个整体,而in是需要一个类似array或者list的参数,为此,需要一个拆分string的sql 函数,还好之前的前辈留下了可以用的,稍微修改一下就可以了,下面来看看这个函数

 FUNCTION f_split
(
-- Add the parameters for the function here
@SourceStr VARCHAR(max),@SeprateStr VARCHAR(10)
)
RETURNS @temp TABLE (a VARCHAR(1000))
AS
BEGIN
DECLARE @i INT
SET @SourceStr = RTRIM(LTRIM(@SourceStr))--去除空格
SET @i=CHARINDEX(@SeprateStr,@SourceStr)
WHILE @i>=1
BEGIN
INSERT @temp
( a )
VALUES ( LEFT(@SourceStr,@i-1) -- a - varchar(1000)
)
SET @SourceStr = SUBSTRING(@SourceStr,@i+1,LEN(@SourceStr)-@i)
SET @i=CHARINDEX(@SeprateStr,@SourceStr)
END
RETURN
END
GO

应该写的很清晰了,就不细说了,欢迎大家指导

sql server 字符串拆分的更多相关文章

  1. Sql Server字符串拆分(Split)方法汇总

    详细链接:https://shop499704308.taobao.com/?spm=a1z38n.10677092.card.11.594c1debsAGeak--方法0:动态SQL法 declar ...

  2. sql server 字符串替换函数REPLACE

    sql server 字符串替换函数REPLACE函数的使用 <pre name="code" class="sql">--参数1:需要替换字符的母 ...

  3. sql server字符串的类型

    sql server字符串分为不同的类型,下面就将为您介绍几个sql server字符串的常见类型,希望对您学习sql server字符串能有所帮助. nchar 此数据类型可存储1~4000个定长U ...

  4. SQL Server 字符串拼接与拆分 string varchar Split and Join

    1.Split    SQL Server 2008 新语法: DECLARE @str VARCHAR(MAX) SET @str = REPLACE(@teeIDs, ',', '''),(''' ...

  5. SQL SERVER 字符串函数 STRING_SPLIT()

    定义: STRING_SPLIT()函数根据指定的分隔符将字符串拆分为子字符串行. ※STRING_SPLIT 要求兼容性级别至少为 130. (即SSMS 2016及以上版本) ※级别低于 130 ...

  6. sql server 字符串转成日期格式

    在SQL Server数据库中,SQL Server日期时间格式转换字符串可以改变SQL Server日期和时间的格式,是每个SQL数据库用户都应该掌握的.本文我们主要就介绍一下SQL Server日 ...

  7. [转]SQL Server字符串处理函数大全

    select语句中只能使用sql函数对字段进行操作(链接sql server), select 字段1 from 表1 where 字段1.IndexOf("云")=1;这条语句不 ...

  8. SQL Server字符串左匹配

    在SQL Server中经常会用到模糊匹配字符串的情况,最简单的办法就是使用like关键字(like语法http://msdn.microsoft.com/en-us/library/ms179859 ...

  9. SQL SERVER字符串函数

    本篇文章还是学习<程序员的SQL金典>内容的记录,此次将讲解的是SQL SERVER的字符串函数. 其实数据库跟程序语言库一样,都会集成很多可以使用的API.这些API,如果你熟悉的话,将 ...

随机推荐

  1. zabbix 邮件报警事件:Zabbix discoverer processes more than 75% busy

    Problem has been resolved at :: on Problem name: Zabbix discoverer processes more than % busy Host: ...

  2. Charles中使用Rewrite提高测试效率

    上次给大家演示了Charles中通过Map Local功能来提高测试效率,Charles还有另外一个强大的功能,Rewrite,这次也给大家演示一下. Charles中的Rewrite功能非常强大,可 ...

  3. @Mapper和@Repository的区别

    参考博客地址 https://www.cnblogs.com/wangshen31/p/8735037.html 相同点 两个都是注解在Dao上 不同 @Repository需要在Spring中配置扫 ...

  4. Linux双网口配置时重复配置DEFROUTE和GATEWAY

    配置一台机器时,沿袭了原有网口配置,修改网口名,把em1全部修改改为eth0 mv ifcfg-em1 ifcfg-eth0 mv ifcfg-em2 ifcfg-eth1 改完以后,机器变得不稳定, ...

  5. BZOJ1233 [Usaco2009Open]干草堆tower[贪心+单调队列优化]

    地址 注意思路!多看几遍! 很巧妙的一道题.不再是决策点以dp值中一部分含j项为维护对象,而是通过维护条件来获取决策. 首先有个贪心策略,让底层的宽度尽可能小,才能让高度尽可能高.所以应该倒着dp,表 ...

  6. Oracle体系结构2

    Buffer Cache 作用:缓存dbf中的数据 例子:A和B重复访问同一张表的几率是很大的,如果每次访问dbf时都要发生物理IO,这样会导致数据库的性能非常低 由于这个例子,当一个进程访问dbf时 ...

  7. Spring后台,通过name取值

    表单中,有同名控件(text/hidden/checkbox.......)的情况下,采用getParameterValues("name"):String[] 表单中,只有一个n ...

  8. C语言 - strlen的编程实现及总结

    一.函数strlen的编程实现 1.strlen函数的实现 原型: size_t strlen(const char *str); 头文件:#include <string.h> 功能:计 ...

  9. (Java多线程系列六)join()的用法和线程的优先级

    join()的用法和线程的优先级 1.join()的用法 join()作用就是让其他线程处于等待状态 先看一个需求:创建一个线程,子线程执行完毕后,主线程才能执行 public class JoinT ...

  10. 关于多个py文件生成一个可运行exe文件(用pyinstaller)

    首先下载Pyinstaller,在cmd命令下执行:pip installer Pyinstaller,不需要关心安装在哪 然后把所有相关的py文件都放在一个目录下 在那个目录下执行cmd命令:pyi ...