SQL根据”,“分割字符串

Declare @Sysno Nvarchar(500);
Set @Sysno=‘4,11064,100‘;
Declare @table_ReviewID Table
(
[Sysno] INT NOT NULL
)
While(CHARINDEX(‘,‘,@Sysno)<>0)
Begin
Insert Into @table_ReviewID(Sysno) Values(CONVERT(Int,Substring(@Sysno,1,CHARINDEX(‘,‘,@Sysno)-1)));
Set @Sysno=STUFF(@Sysno,1,CHARINDEX(‘,‘,@Sysno),‘‘);
End

Insert Into @table_ReviewID (Sysno) Values(CONVERT(Int,@Sysno));
Select * From @table_ReviewID

备注:

STUFF用法:删除指定长度的字符,并在指定的起点处插入另一组字符
语法

STUFF ( character_expression , start , length ,character_expression )
character_expression :操作的字符串
start :起始位置
length :长度
,character_expression :删除的起始位置插入第二个字符串,从而创建并返回一个字符串
例如:SELECT STUFF(‘abcdef‘, 2, 3, ‘ijklmn‘) 输出:aijklmnef

CHARINDEX用法: 通过CHARINDEX如果能够找到对应的字符串,则返回该字符串位置,否则返回0。

CHARINDEX ( expressionToFind , expressionToSearch [ , start_location ] )

expressionToFind :目标字符串,就是想要找到的字符串,最大长度为8000 。
expressionToSearch :用于被查找的字符串。
start_location:开始查找的位置,为空时默认从第一位开始查找。

原文地址:https://www.cnblogs.com/BounceGuo/p/9835656.html

时间: 2024-10-11 16:21:39

SQL根据”,“分割字符串的相关文章

Sql Server分割字符串函数

-- Description: 分割字符串函数 -- SELECT * FROM dbo.Split('a,b,c,d,e,f,g',',') -- ============================================= CREATE FUNCTION [dbo].[Split] ( @Text VARCHAR(8000) , @Sign NVARCHAR(4000) ) RETURNS @tempTable TABLE ( ID INT IDENTITY(1, 1) PRI

SQL Server分割字符串

下面是创建了以","分割字符串的函数:  create   function   f_splitstr(@SourceSql   varchar(8000),@StrSeprate   varchar(100))      returns   @temp    table(F1   varchar(100))      as        begin      declare   @ch    as   varchar(100)      set   @[email protected

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

我相信大部分人都碰到过,处理数据的时候,字段的值是以 ',' (逗号)分隔的形式,所以我也不能避免. 然后我才知道,sql 是没有类似于 C# 和 Javascript 这种分割字符串的方法.( Split ) 所以我自己定义了一个 sql 函数(多声明表值函数),代码如下: 1 USE [Test] 2 GO 3 /****** Object: UserDefinedFunction [dbo].[Split] Script Date: 2017/4/14 23:04:08 ******/ 4

MySQL 直接用SQL分割字符串到数组

承接上文:MySQL  中在不编写存储过程或函数的前提下,利用SQL 语句拆分一个字符串到数组 主要思路其实一致:够造序列,然后结合MySQL的SUBSTRING_INDEX 函数的特性分割字符串. SET @str ="a,b,c,d,e,f,g,h,i,j,k" ; SET @delim="," ; SET @str_length=length(@str)- length( REPLACE (@str,@delim,'') )+1 ; SELECT SUBSTR

SQL Server中自定义函数:用指定的分隔符号分割字符串

2014-11-13 微软SQL Server数据库中包含了很多内置的函数,入下图: 它们用于处理日期.数学.元数据.字符串等. 其中最为常用的就是处理字符串,里面包含了CharIndex()等函数,非常方便使用. 但是对于 特殊字符串的处理,比如:ISBN号 '978-7-5007-7234-7',如果想获取第三个与第四个分割符号之间的数字, 那么SQL 内置函数无法直接做到.这时就需要自定义函数.下面自定义三个函数,用于处理特殊的字符串. 一.按指定符号分割字符串,返回分割后的元素个数 1

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 int 10 declare @start int 11

php和mysql两种不同方式的分割字符串和类型转换

一.sql语句1.分割字符串方法:substring_index(字符串,'分隔符',正数从左数起几位/负数从右数起几位); 例如:subtring_index('aa_bb_cc_dd','_',1);分割成 aa bb cc dd,第三个参数表示分割后的字符串段数的位,若为1,表示aa,2,aa_bb -1,dd-2,cc_dd-3 bb_cc_(注意,大于等于2返回的结果带着分隔符,这是一个弊端) 2.CAST方法CAST (类型1 AS 类型2)转换数据类型,后者必须是前者可以正确转换的

Oracle分割字符串 REGEXP_SUBSTR用法

分割字符串中所有指定字符,然后成多行参数说明,参数1: 待分割字符串参数2:正则表达式参数3:起始位置,从第几个字符开始正则表达式匹配(默认为1)参数4:标识第几个匹配组,默认为1参数5:模式('i'不区分大小写进行检索:'c'区分大小写进行检索.默认为'c'.) --示例分隔符';',分割成列 select regexp_substr('a;b;c;','[^;]+',1,rownum,'c') as regexp_strs from dual connect by rownum<=lengt

SQL Server如何用SQL实现一批字符串的全部组合

原文:SQL Server如何用SQL实现一批字符串的全部组合 在SQL Server中,如何用SQL去实现得到一批字符串的全部组合呢?这个是同事在实际需求当中遇到的一个问题,他的具体需求如下所示: 传入参数格式为'1,2,3,224,15,6'   'A,BC,GHT,TTY,B,E' 输出的内容为分割后字符串的所有非排列组合 !-阶乘,如!=5××××=120  (M!/(N!*((M-N)!))) 公式描述:组合数公式是从m个不同元素中,任取n(n≤m)个元素并成一组,叫做从m个不同元素中

分割字符串

#include <stdio.h> #include <string.h> /* 分割字符串 */ int main(void){ char s[100] = "123-456-789-abc-edf"; //strtok第一次调用的时候,第一个参数是字符串, //但第二次调用的时候,第一个参数是NULL const char *buf =strtok(s,"-"); while(buf){ printf("%s\n",