日期:2014-05-18  浏览次数:20428 次

请帮我看一下!谢谢
请帮我看一下,谢谢。我想明白下面是什么意思及详细的变量取数原理


SELECT   @startPosition   =   CHARINDEX(@str,@chrWhere,0)
IF   @startPosition   =   0
    RETURN
SELECT   @endPosition   =   CHARINDEX(@str,@chrWhere,@startPosition+1)
IF   @endPosition   =   0
    RETURN
SELECT   @attribute   =   SUBSTRING(@chrWhere,@startPosition+1,@endPosition-@startPosition-1)


SELECT   @startPosition   =   CHARINDEX(@str,@chrWhere,@endPosition+1)
IF   @startPosition   =   0
    RETURN
SELECT   @endPosition   =   CHARINDEX(@str,@chrWhere,@startPosition+1)
IF   @endPosition   =   0
    RETURN
SELECT   @start   =   SUBSTRING(@chrWhere,@startPosition+1,@endPosition-@startPosition-1)


SELECT   @startPosition   =   CHARINDEX(@str,@chrWhere,@endPosition+1)
IF   @startPosition   =   0
    RETURN
SELECT   @endPosition   =   CHARINDEX(@str,@chrWhere,@startPosition+1)
IF   @endPosition   =   0
    RETURN
SELECT   @end   =   SUBSTRING(@chrWhere,@startPosition+1,@endPosition-@startPosition-1)



------解决方案--------------------
--@startPosition是保存字符串@str在第一次@chrWhere中出现的位置
SELECT @startPosition = CHARINDEX(@str,@chrWhere,0)
IF @startPosition = 0
RETURN
--如果有则@endPosition保存第二次出现的位置
SELECT @endPosition = CHARINDEX(@str,@chrWhere,@startPosition+1)
IF @endPosition = 0
RETURN
--@attribute保存@str在@chrWhere中第一次与第二次位置中间的字符串
SELECT @attribute = SUBSTRING(@chrWhere,@startPosition+1,@endPosition-@startPosition-1)

--下面意思差不多