SQL server中字符串逗号分隔函数分享_MsSql

继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数(数据大时不建议这样做)

例:查找姓名为“张三,李二” 的数据此时在数据库里就要对此参数做处理如图:

函数代码如下

CREATE FUNCTION [dbo].[fnSplitStr] (
 @sText  NVARCHAR(Max),
 @sDelim  CHAR(1)
)

RETURNS @retArray TABLE (
 value VARCHAR(100)
)
AS
BEGIN
 DECLARE
  @posStart  BIGINT,
  @posNext  BIGINT,
  @valLen   BIGINT,
  @sValue   NVARCHAR(100);

 IF @sDelim IS NULL
 BEGIN
  IF LEN(@sText)>100 SET @sText = SUBSTRING(@sText, 1, 100)

  INSERT @retArray (value)
  VALUES (@sText);
 END
 ELSE
 BEGIN
  SET @posStart = 1;

  WHILE @posStart <= LEN(@sText)
  BEGIN
   SET @posNext = CHARINDEX(@sDelim, @sText, @posStart);

   IF @posNext <= 0
    SET @valLen = LEN(@sText) - @posStart + 1;
   ELSE
    SET @valLen = @posNext - @posStart;

   SET @sValue = SUBSTRING(@sText, @posStart, @valLen);
   SET @posStart = @posStart + @valLen + 1;

   IF LEN(@sValue) > 0
   BEGIN
    IF LEN(@sValue)>100 SET @sValue = SUBSTRING(@sValue, 1, 100)

    INSERT @retArray (value)
    VALUES (@sValue);
   END
  END
 END
 RETURN
END

好了,关于sql字符串逗号分隔函数就介绍到这,大家可以参考一下。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索字符串
, 函数
逗号分隔
mssql 逗号分隔 转行、字符串以逗号分隔、字符串按逗号分隔、sql server 逗号分隔、字符串按照逗号分隔,以便于您获取更多的相关知识。

时间: 2024-10-17 22:36:10

SQL server中字符串逗号分隔函数分享_MsSql的相关文章

SQL server中字符串逗号分隔函数分享

继SQl -Function创建函数数据库输出的结果用逗号隔开,在开发中也有许多以参数的形式传入带逗号字条串参数(数据大时不建议这样做) 例:查找姓名为"张三,李二" 的数据此时在数据库里就要对此参数做处理如图: 函数代码如下 CREATE FUNCTION [dbo].[fnSplitStr] ( @sText NVARCHAR(Max), @sDelim CHAR(1) ) RETURNS @retArray TABLE ( value VARCHAR(100) ) AS BEGI

SQL Server 自定义字符串分割函数

原文:SQL Server 自定义字符串分割函数 一.按指定符号分割字符串,返回分割后的元素个数,方法很简单,就是看字符串中存在多少个分隔符号,然后再加一,就是要求的结果(标量值函数)   1 create function Func_StrArrayLength 2 ( 3 @str varchar(1024), --要分割的字符串 4 @split varchar(10) --分隔符号 5 ) 6 returns int 7 as 8 begin 9 declare @location in

sql server中随机函数NewID()和Rand()_MsSql

在SQL Server中,随机函数有rand(),NewID(),其中rand是在0到1内随机取数,NewID则是生成随机的uniqueidentifier唯一标识符. SELECT * FROM Northwind..Orders ORDER BY NEWID() --随机排序 SELECT TOP 10 * FROM Northwind..Orders ORDER BY NEWID() --从Orders表中随机取出10条记录 示例 A.对变量使用 NEWID 函数 以下示例使用 NEWID

SQL Server中的RAND函数的介绍和区间随机数值函数的实现

工作中会遇到SQL Server模拟数据生成以及数值列值(如整型.日期和时间数据类型)随机填充等等任务,这些任务中都要使用到随机数.鉴于此,本文将对SQL Server中随机数的使用简单做个总结 . T-SQL 随机有关的三个函数 RAND([seed] 此函数生成从0到1之间随机 float 值(详细说明查看https://technet.microsoft.com/zh-cn/library/ms177610(v=sql.90).aspx). CHECKSUM ( * | expressio

SQL Server中的Rounding函数

问题 最近我试着在自己的应用中使用四舍五入的值,我和我的用户在报表应用中的 计算问题存在分歧.所有的代码都在T-SQL中,但是我认为报表问题与数据类型和 向下取整或向上取整规则关系密切.请问您有没有这方面的高见?我想看到一些带 有不同编码选项的例子. 专家解答 如果不理解基本的数据类型和四舍五入函数,那么你就可能误解四舍五入.由 于数据类型的差异(比如integer,float, decimal等等),四舍五入后的值可能 会不同.另外,由于在计算中使用的SQL Server舍入函数(ROUND(

SQL Server中通配符的使用示例_MsSql

在某些情况下熟悉SQL Server 通配符的使用可以帮助我们简单的解决很多问题. --使用_运算符查找Person表中以an结尾的三字母名字 USEAdventureWorks2012; GO SELECT FirstName, LastName FROM Person.Person WHERE FirstName LIKE'_an' ORDER BY FirstName; ---使用[^]运算符在Contact表中查找所有名字以Al开头且第三个字母不是字母a的人 USEAdventureWo

SQL Server中网络备份一例_MsSql

复制代码 代码如下: use master  declare @dir varchar(256),@dir_db varchar(256),          @verb varchar(256),@cmd varchar(256),          @backup_name varchar(256),@dynamic_name varchar(10),          @disk_name varchar(256)  --建立网络连接  exec xp_cmdshell 'net use 

如何在SQL Server中使用随机记录集_MsSql

今天的文章,我想给你简单介绍下SQL Server里如何随机记录集. SELECT * FROM Person.Person ORDER BY NEWID() GO 这会引入新的UNIQUEIDENTIFIER数据类型列,SQL Server会在那列上进行物理排序操作. 但是在记录集里列本身没有返回,因为ORDER BY子句在查询SELECT部分逻辑后发生,因此也不会改变记录集. 在SQL Server里,简单但很强大的方法用来随机化你的记录集. 以上所述就是本文的全部内容,希望大家可以喜欢.

浅析SQL Server中包含事务的存储过程_MsSql

先来看一个概念: 数据库事务(Database Transaction) ,是指作为单个逻辑工作单元执行的一系列操作,要么完整地执行,要么完全地不执行.那么在存储过程里添加事务,则可以保证该事务里的所有sql代码要么完全执行要么完全不执行. 举个简单的带事务的存储过程: Begin Set NOCOUNT ON; --不返回影响行数 Set XACT_ABORT ON; --使用存储过程执行事务需要开启XACT_ABORT参数(默认为OFF) delete from table1 where n