两次分割,首先根据|来分割,然后根据*来分割,如果可能,建议在程序里做这个事情。
你没天都没啥事做哇~~
不过,答案是这样子的哦。可以自己写个按符合拆分的function 供以后使用
@耘: 有事做啊,相互不影响嘛。
Substring(字段,CHARINDEX('textBox10',字段)+10,2)
INSERT INTO bEvent (vchrEventName,vchrEventAbbr,bitEventShut,EventGroup,IsDeleted)
VALUES('抢救','',1,'',0)
CREATE FUNCTION [dbo].[f_splitSTR](
@s varchar(8000), --待分拆的字符串
@split varchar(8000) --数据分隔符
)RETURNS @re TABLE(col varchar(8000))
AS
BEGIN
DECLARE @splitlen int
SET @splitlen=LEN(@split+'a')-2
WHILE CHARINDEX(@split,@s)>0
BEGIN
INSERT @re VALUES(LEFT(@s,CHARINDEX(@split,@s)-1))
SET @s=STUFF(@s,1,CHARINDEX(@split,@s)+@splitlen,'')
END
INSERT @re VALUES(@s)
RETURN
END
GO
CREATE function [dbo].[fGetprintReportNameValue](@applyID int,@printName VARCHAR(100),@col VARCHAR(30))
returns varchar(300)
AS
BEGIN
DECLARE @result VARCHAR(30)
DECLARE @AneZqSpecial VARCHAR(8000)
SELECT TOP 1 @AneZqSpecial = prn.AneZqSpecial FROM printReportName prn WHERE prn.intApplyID=@applyID
AND prn.printName=@printName order by id
SELECT @result =SUBSTRING(col,8,800) FROM dbo.f_splitSTR(@AneZqSpecial,'|') WHERE col LIKE '%'+@col+'%'
RETURN @result
END
GO
自己研究吧
提供一个思路
想想还是C#爽啊
这个思路不错。
在程序里写吧,别在SQL里写,SQL写起来麻烦。