当前位置: 代码迷 >> Sql Server >> 请问简单sql数据提取
  详细解决方案

请问简单sql数据提取

热度:88   发布时间:2016-04-27 11:11:49.0
请教简单sql数据提取
如题,,例如表A中,数据如下:
 
SQL code
                字段a                       字段。。。。                2.3                12.33                &11.3                中文字24.3中文字                22.02                NULL                0.7-1.0                6.2        

现要返回数据如下:
 
SQL code
                字段a                       字段。。。。                2.3                12.33                [color=#FF0000]11.3[/color]                [color=#FF0000]24.3[/color]                22.02                NULL                [color=#FF0000]1.0[/color]                6.2        


------解决方案--------------------
SQL code
--提取非汉字IF OBJECT_ID('dbo.fn_china_word') IS NOT NULLDROP FUNCTION dbo.fn_china_wordGOCREATE FUNCTION dbo.fn_china_word(@S NVARCHAR(100))RETURNS VARCHAR(100)ASBEGINWHILE PATINDEX('%[吖-座]%',@S) > 0---去掉 ^ 就是取非汉字SET @S = STUFF(@S,PATINDEX('%[吖-座]%',@S),1,N'')RETURN @SENDGOif object_id('[Test]') is not null drop table [Test]gocreate table [Test]([字段a] nvarchar(30))goinsert into [Test]select '2.3' union allselect '12.33' union allselect '&11.3' union allselect N'中文字24.3中文字' union allselect '22.02' union allselect NULL union allselect '0.7-1.0' union allselect '6.2'select case when [字段a] like '%&%' then '[color=#FF0000]'+replace([字段a],'&','')+'[/color]'       when [字段a] like '%[吖-座]%' then '[color=#FF0000]'+dbo.fn_china_word([字段a])+'[/color]'       when [字段a] like '%-%' then '[color=#FF0000]'+substring([字段a],charindex('-',[字段a])+1,len([字段a])-charindex('-',[字段a]))+'[/color]' else [字段a] endfrom [Test]/*(8 row(s) affected)----------------------------------------------------------------------------------------------------------------2.312.33[color=#FF0000]11.3[/color][color=#FF0000]24.3[/color]22.02NULL[color=#FF0000]1.0[/color]6.2(8 row(s) affected)*/
  相关解决方案