易截截图软件、单文件、免安装、纯绿色、仅160KB

sql一个字段内容拆分问题 - MS-SQL Server / 基础类

各位高手:咨询个sql语句:有个表中,一个字段里面装有这些内容,
字段名: sumall  
字段内容: [汇总1001:30,1002:10,3001:15,4010:100,5006:1,6021:1000]

我想拆分为:
mx sl
1001 30
1002 10
3001 15
4010 100
5006 1
6021 1000
这样的sql怎么写?
字段内容中包含的有中括号的 [] 也是字段内容的一部分

SQL code:
declare @t table(sumall nvarchar(200))
insert @t select N'[汇总1001:30,1002:10,3001:15,4010:100,5006:1,6021:1000]'
;with sql_sf
as
(SELECT
sumall=SUBSTRING(replace(replace(a.sumall,N'[汇总',''),']',''),number,CHARINDEX(',',a.sumall+',',number)-b.number)
from @t a
JOIN master..spt_values b
ON b.type='p'
AND CHARINDEX(',',','+a.sumall,number)=number)
select left(sumall,charindex(':',sumall)-1)mx,
right(sumall,len(sumall)-charindex(':',sumall))sl
from sql_sf


SQL code:

CREATE FUNCTION f_splitSTR(
@s varchar(8000), --待分拆的字符串
@split varchar(10) --数据分隔符
)RETURNS @re TABLE(col varchar(100))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@spli


相关问答:

SQL如何优化问题 - MS-SQL Server / 疑难问题

今天做了一个存储过程   环境是SQL2000数据库  
大致如下
建立临时表
定义员工游标
        循环员工(属于1个公司)  
        ......

MS SQL作业问题 - MS-SQL Server / 应用实例

如何在SQL2005中设定定时作业,比如说定时清理某些表的数据,
或者是定时的将某些表的数据导出excel!
在线等待,急急急,最好是详细步骤!
之前我做的作业有点问题!
帮UP

参考:http://hi.baidu.com/toiota ......

求一SQL - MS-SQL Server / 基础类

tab1 字段:billdate,goodsid,incount,inmoney,outcount,outmoney,endprice,endcount,endamt
tab2 字段:goodsid,goodskind(商品类型)
tab3 字段:goodskind(商品类型),kindname
结果:
得到商品类型在一段时间 ......

SQL不明白 - MS-SQL Server / 应用实例

查询学生平均成绩及其名次 
  SELECT 1+(SELECT COUNT( distinct 平均成绩) 
  from (SELECT S#,AVG(score) AS 平均成绩 
  from SC&n ......

一条 SQL - Oracle / 基础和管理

有这样一条SQL
 Select Get_Costtaxrate(col1), Get_Tcostvalue(col1) from a
 
其中Get_Costtaxrate、Get_Tcostvalue都是函数,这两个函数里面都是查找一个大表,Get_Tcostvalue还需要调用Get_C ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号