如何从¢160*0.4*8等类似的字符中提取出第二个*左边的字符
烦请帮忙解答 问题点数:20、回复次数:3Top
1 楼caixia615(*^_^*)‵My ɡīr!.ˊ想念妳ˋ 。(*^_^*)回复于 2006-12-01 07:57:48 得分 0
substring(字段名,8,1)Top
2 楼YiZhiNet(九斤半)回复于 2006-12-01 08:43:49 得分 0
CREATE TABLE TEST(COL NVARCHAR(20))
INSERT TEST SELECT '¢160*0.4*8'
INSERT TEST SELECT '¢963333*0.4*8'
INSERT TEST SELECT '¢160*0.410'
--SELECT * FROM TEST
GO
-- 如何从¢160*0.4*8等类似的字符中提取出第二个*左边的字符
CREATE FUNCTION FG_TEST(@COL NVARCHAR(20))
RETURNS NVARCHAR(20)
AS
BEGIN
DECLARE @STR NVARCHAR(20)
DECLARE @RESULT NVARCHAR(20)
IF CHARINDEX('*',@COL)>0
BEGIN
BEGIN
SET @STR=RIGHT(@COL,LEN(@COL)-CHARINDEX('*',@COL))
SET @RESULT=LEFT(@COL,CHARINDEX('*',@COL))
END
IF CHARINDEX('*',@STR)>0
BEGIN
SET @RESULT=@RESULT+LEFT(@STR,CHARINDEX('*',@STR)-1)
END
ELSE
SET @RESULT=''
--RETURN CHARINDEX('*',@COL)
END
ELSE
SET @RESULT=''
RETURN @RESULT
END
GO
SELECT *,DBO.FG_TEST(COL) AS RESULT FROM TEST
DROP FUNCTION FG_TEST
DROP TABLE TESTTop
3 楼zlp321002(Life Is Good,Let's Shine)回复于 2006-12-01 09:00:33 得分 20
DECLARE @S VARCHAR(2000)
SET @S='¢160*0.4*8'
SELECT LEFT(@S,CHARINDEX('*',STUFF(@S,CHARINDEX('*',@S),1,''),CHARINDEX('*',@S)))Top





