如题,,例如表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)*/