当前位置: 代码迷 >> Sql Server >> 求帮忙!解决办法
  详细解决方案

求帮忙!解决办法

热度:88   发布时间:2016-04-24 10:38:23.0
求帮忙!!
表中有列为如下显示text类型
1=1,2=2,4=58,9=57
想转换成行显示,同时把=和后面的数字去掉
求解决!!
------解决方案--------------------
----------------------------------------------------------------
-- Author  :DBA_HuangZJ(发粪涂墙)
-- Date    :2014-05-27 15:48:25
-- Version:
--      Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) 
-- Apr  2 2010 15:48:46 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: ) (Hypervisor)
--
----------------------------------------------------------------
--> 测试数据[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([col] nvarchar(max))
insert [huang]
select '{E4837DE3-BA98-492F-A720-C3F3FC02600E}=68,{6EBE596B-8361-41A3-8D34-26EB651A147C}=88,{1273635E-3716-4200-B2F2-B583D21CAC19}=168,{0B5F6F5A-B6AD-4D7A-9BB9-9C0F6CAE2341}=168,{A3A15C25-B890-47E6-948F-F0B4677A9333}=128,{6A73430E-6E55-4E15-89E6-18A5285BAAAD}=38'
--------------生成数据--------------------------
;WITH cte AS (
SELECT  SUBSTRING([col], number, CHARINDEX(',', [col] + ',', number) - number) AS [col]
FROM    huang a ,
        master..spt_values
WHERE   number >= 1
        AND number <= LEN([col])
        AND type = 'p'
        AND SUBSTRING(',' + [col], number, 1) = ',')
SELECT LEFT(col,PATINDEX('%=%',col)-1)col,RIGHT(col,LEN(col)-PATINDEX('%=%',col))[数量]
FROM cte 
----------------结果----------------------------
/* 
col                                      数量                                                                                                                                                                                                                        
---------------------------------------- -------
{E4837DE3-BA98-492F-A720-C3F3FC02600E}   68
{6EBE596B-8361-41A3-8D34-26EB651A147C}   88
{1273635E-3716-4200-B2F2-B583D21CAC19}   168
{0B5F6F5A-B6AD-4D7A-9BB9-9C0F6CAE2341}   168
{A3A15C25-B890-47E6-948F-F0B4677A9333}   128
{6A73430E-6E55-4E15-89E6-18A5285BAAAD}   38
*/
  相关解决方案