SQL字符串分割转列,Sql列转字符串
declare @strVar varchar(2000)
declare @ResultVar varchar(2000)
set @ResultVar='[薄饼],[点心],[海鲜],[酒吧],[楼面],[茗茶],[乳鸽],[烧味],[生蚝],[套餐宴席],[煨汤],[中厨]'
select * from Sys_Fn_Get_TableFromStringSplit(@strVar,',')
--Result
Id FlowId
[薄饼] 1
[点心] 2
[海鲜] 3
[酒吧] 4
[楼面] 5
[茗茶] 6
[乳鸽] 7
[烧味] 8
[生蚝] 9
[套餐宴席] 10
[煨汤] 11
[中厨] 12
--DIY
set @ResultVar=STUFF((select ','+ 'sum(' + p.Id+') as ' +p.id
from Sys_Fn_Get_TableFromStringSplit(@strVar,',') p for XML path('')),1,1,'')
select @ResultVar
--Result
sum([薄饼]) as [薄饼],sum([点心]) as [点心],sum([海鲜]) as [海鲜],sum([酒吧]) as [酒吧],sum([楼面]) as [楼面]
--字符串分割成表函数
create function [dbo].[Sys_Fn_Get_TableFromStringSplit]
(
@Strings varchar(max), --要分割成表的字符串 盘点时候要分割的数据可能超过8000
@Spliter varchar(10) --分隔符
)
returns @Table table(Id varchar(50),FlowId int identity(1,1))
as
begin
declare @index int, @tempValue varchar(50)
while (1 = 1)
begin
set @index = charindex(@Spliter, @Strings);
if (@index > 0)
begin
set @tempValue = substring(@Strings, 1, @index);
set @Strings = substring(@Strings, @index + 1, len(@Strings) -@index);
set @tempValue = replace(ltrim(rtrim(@tempValue)), @Spliter, '');
if (len(@tempValue) > 0)
begin
insert into @Table
values
(
@tempValue
);
end
end
else
begin
set @tempValue = ltrim(rtrim(@Strings));
if (len(@tempValue) > 0)
begin
insert into @Table
values
(
@tempValue
);
end
break;
end
end
return;
/*********************************Demo*****************************************
select * from dbo.Sys_Fn_Get_TableFromStringSplit('1,2,3,,4,5,6', ',');
select * from dbo.Sys_Fn_Get_TableFromStringSplit('1 2 3,,4 5,6', ' ');
select * from dbo.Sys_Fn_Get_TableFromStringSplit('1,2;3,,4,5;6', ';');
*******************************************************************************/
end
SQL字符串分割转列,Sql列转字符串的更多相关文章
- 学习之路三十六:SQL知识总结 - [游标||字符串分割]
好久没有写文章了,今天把前不久项目用到的SQL知识总结一下. 一丶字符串分割 SQL内置函数中是没有Split分割函数的,所以需要自己去实现,不多说,上代码: )) RETURNS @result T ...
- Python字符串操作之字符串分割与组合
12.字符串的分割和组合 12.1 str.split():字符串分割函数 通过指定分隔符对字符串进行切片,并返回分割后的字符串列表. 语法: str.split(s, num)[n] 参数说明: s ...
- 将中文字符串分割为数组 解决str_split中文乱码php
首先来介绍str_split()这个函数: 它的作用是将字符串分割为数组: 例如: $str='abcde';str_plite($str); 打印结果如下:Array( [0] => a ...
- C++ 字符串分割,并把子字符串转换成int型整数
主要涉及到string类的两个函数find和substr: find()函数的用法: 原型:size_t find ( const string& str, size_t pos = 0 ) ...
- 【原】sql 将某列拼成一个字符串
SQL Server中,写存储过程,时常会碰到这样一个需求:从某个表中取某一列,然后需要将这一列数据以某种形式拼成一个字符串,以供后面使用,下面这种方法能够实现此需求. --取说明书模块枚举,结果格式 ...
- Sql Server将一列字段拼接成字符串方法
最近在项目中遇到个问题,需要将表中某列字段合并成字符串输出,如果直接通过代码全部读取出来,再遍历进行拼接显然不是最好的方法,所以想着能否在数据读取的时候直接拼接好返回,网上搜了可通过for xml来实 ...
- 在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串)
原文:在论坛中出现的比较难的sql问题:36(动态行转列 解析json格式字符串) 所以,觉得有必要记录下来,这样以后再次碰到这类问题,也能从中获取解答的思路.
- 在论坛中出现的比较难的sql问题:1(字符串分拆+行转列问题 SQL遍历截取字符串)
原文:在论坛中出现的比较难的sql问题:1(字符串分拆+行转列问题 SQL遍历截取字符串) 最近,在论坛中,遇到了不少比较难的sql问题,虽然自己都能解决,但发现过几天后,就记不起来了,也忘记解决的方 ...
- [SQL Server]一列多行转换为字符串
在 SQL Server 中,如何将多行数据变成一个字符串保存. skill 投石 挖矿 刮痧 上面三行数据想要得到结果为:投石,挖矿,刮痧 有两种方式: 拼接字符串. 使用 for XML 首先创建 ...
随机推荐
- 使用WebClient與HttpWebRequest的差異
在<Windows Phone 7-下載檔案至Isolated Storage>提到了透過WebClient的功能將網站上的檔案下載至 WP7的Isoated Storage之中.但實際的 ...
- opencv_traincascade 训练自己的检测器
2013年08月08日 ⁄ 综合 ⁄ 共 1061字 ⁄ 字号 小 中 大 ⁄ 评论关闭 经过近一个月的工程实战,把自己累积的经验分享给大家,教你如何训练一个收敛的,比opencv自带的data效 ...
- mybatis 需要注意的点 MyBatis 插入空值时,需要指定JdbcType (201
转自:https://blog.csdn.net/snakemoving/article/details/76052875 前天遇到一个问题 异常显示如下: 引用 Exception in threa ...
- python greenlet 背景介绍与实现机制
最近开始研究Python的并行开发技术,包括多线程,多进程,协程等.逐步整理了网上的一些资料,今天整理一下greenlet相关的资料. 并发处理的技术背景 并行化处理目前很受重视, 因为在很多时候,并 ...
- ul li的添加 删除 复制 clone()
语法总结 li=document.createElement('li') li.innerText = tag $('#i1').append(li) $(..).clone() 复制整个文本和Ht ...
- delphi 工具
http://blog.csdn.net/maxwoods/article/category/1285993
- java日期公共类
package com.mall.common; import java.text.ParseException; import java.text.SimpleDateFormat; import ...
- 解决docker tty窗口太小,命令换行的问题
docker exec -it -e LINES=$(tput lines) -e COLUMNS=$(tput cols) ed08 bash
- SELinux导致的docker启动失败
安装docker yum install -y docker 启动docker systemctl start docker 报错 Job for docker.service failed beca ...
- PowerDesigner如何导出建表sql脚本(转)
1 按照数据库类型,切换数据库. Database-> Change Current DBMS... 2 生成sql脚本 Database -> Database Generation 的 ...