栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

使用Sybase SQL Anywhere分割/分解逗号分隔的字符串

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

使用Sybase SQL Anywhere分割/分解逗号分隔的字符串

就像 Mikael Eriksson 所说的那样,
dba.stackexchange.com上
有两个非常好的解决方案,一个是使用

sa_split_list
系统过程的解决方案,第二是使用
CAST
语句的解决方案。

由于

sa_split_list
不存在Sybase SQL Anywhere
9系统过程,因此我进行了
sa_split_list
系统过程替换(我使用了来自 bsivel 答案的部分代码):

CREATE PROCEDURE str_split_list(in str long varchar, in delim char(10) default ',')RESULT(  line_num integer,  row_value long varchar)BEGIN  DECLARE str2 long varchar;  DECLARE position integer;   CREATE TABLE #str_split_list (   line_num integer DEFAULT AUTOINCREMENT,   row_value long varchar null,   primary key(line_num));   SET str = TRIm(str) || delim;   SET position = CHARINDEX(delim, str);   separaterows:   WHILE position > 0 loop       SET str2 = TRIm(LEFt(str, position - 1));       INSERT INTO #str_split_list (row_value)       VALUES (str2);       SET str = RIGHt(str, LENGTH(str) - position);       SET position = CHARINDEX(delim, str);    end loop separaterows;   select * from #str_split_list order by line_num asc;END

执行

sa_split_list
与默认分隔符相同的方法
,

select * from

str_split_list(‘1234,23,56,576,1231,567,122,87876,57553,1216’)

或使用可以更改的指定定界符:

select * from

str_split_list(‘1234,23,56,576,1231,567,122,87876,57553,1216’, ‘,’)



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/414742.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号