SELECT SUBSTRING(COL1,CHARINDEX('加',COL1+'(')+1,CHARINDEX('(',COL1+'(')-1) FROM TB
DECLARE @TB TABLE([COL] NVARCHAR(12)) INSERT @TB SELECT N'白有2000加2.5' UNION ALL SELECT N'白轉晚有加5.25(假)' UNION ALL SELECT N'晚有0800加3'SELECT LEFT(COL,PATINDEX('%[^0-9^.]%', COL+'X')-1) FROM ( SELECT COL=STUFF(COL,1,CHARINDEX(N'加',COL),'') FROM @TB ) T /* 2.5 5.25 3 */
DECLARE @a TABLE(a NVARCHAR(200)) INSERT @a SELECT '‧白有2000加2.5' union all select '‧白轉晚有加5.25(假)' union all select '‧晚有0800加3' SELECT substring(a+',',charindex('加',a)+1,PATINDEX('%[^0-9.]%',stuff(a+',',1,CHARINDEX('加',a),''))-1) FROM @a--result /* ----------------- 2.5 5.25 3 (所影响的行数为 3 行) */
create function [dbo].[get_number2](@s varchar(100)) returns varchar(100) as begin while patindex('%[^0-9.]%',@s) > 0 begin set @s=stuff(@s,patindex('%[^0-9.]%',@s),1,'') end return @s endgodeclare @table table (col varchar(19)) insert into @table select '.白有2000加2.5' union all select '.白轉晚有加5.25(假)' union all select '.晚有0800加3'select dbo.get_number2(substring(col,charindex('加',col),len(col)-charindex('加',col)+1)) as col from @table/* col ------ 2.5 5.25 3 */
insert @t select N'‧白有2000加2.5'
insert @t select N'‧白轉晚有加5.25(假)'
insert @t select N'‧晚有0800加3'
SELECT REPLACE(RIGHT(COL,LEN(COL)-CHARINDEX(N'加',COL)),N'(假)','') FROM @T
/*
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2.5
5.25
3*/
INSERT @TB
SELECT N'白有2000加2.5' UNION ALL
SELECT N'白轉晚有加5.25(假)' UNION ALL
SELECT N'晚有0800加3'SELECT LEFT(COL,PATINDEX('%[^0-9^.]%', COL+'X')-1)
FROM (
SELECT COL=STUFF(COL,1,CHARINDEX(N'加',COL),'')
FROM @TB ) T
/*
2.5
5.25
3
*/
INSERT @a SELECT '‧白有2000加2.5'
union all select '‧白轉晚有加5.25(假)'
union all select '‧晚有0800加3'
SELECT substring(a+',',charindex('加',a)+1,PATINDEX('%[^0-9.]%',stuff(a+',',1,CHARINDEX('加',a),''))-1)
FROM @a--result
/*
-----------------
2.5
5.25
3
(所影响的行数为 3 行)
*/
create function [dbo].[get_number2](@s varchar(100))
returns varchar(100)
as
begin
while patindex('%[^0-9.]%',@s) > 0
begin
set @s=stuff(@s,patindex('%[^0-9.]%',@s),1,'')
end
return @s
endgodeclare @table table (col varchar(19))
insert into @table
select '.白有2000加2.5' union all
select '.白轉晚有加5.25(假)' union all
select '.晚有0800加3'select dbo.get_number2(substring(col,charindex('加',col),len(col)-charindex('加',col)+1)) as col from @table/*
col
------
2.5
5.25
3
*/
insert @t select '白有2000加2.5'
insert @t select '白轉晚有加5.25(假)'
insert @t select '晚有0800加3' SELECT SUBSTRING(COL,CHARINDEX(N'加',COL+'(')+1,CHARINDEX(N'(',COL+'(')-CHARINDEX(N'加',COL+'(')-1) FROM @t
在给帮帮