学习之路三十六:SQL知识总结 - [游标||字符串分割]

好久没有写文章了,今天把前不久项目用到的SQL知识总结一下。

一丶字符串分割

  SQL内置函数中是没有Split分割函数的,所以需要自己去实现,不多说,上代码:

CREATE FUNCTION Split(@source VARCHAR(MAX),@separator VARCHAR(10))
RETURNS @result TABLE(strValue VARCHAR(MAX))
AS
BEGIN

    DECLARE @index INT
    SET @source = RTRIM(LTRIM(@source))
    SET @index = CHARINDEX(@separator, @source)
    WHILE(@index >= 1)
    BEGIN
        INSERT @result VALUES(LEFT(@source, @index -1))
        SET @source = SUBSTRING(@source, @index+1, LEN(@source) - @index)    
        SET @index = CHARINDEX(@separator, @source)
    END
    
    IF(@source <> '\')
    BEGIN
        INSERT @result VALUES(@source)
    END

    RETURN
END

 

二丶游标

  游标一般情况下都不建议使用,不过在特殊的需求下,用一下还是很好好处的,不过一定要注意性能哦,上代码:

DECLARE @temp VARCHAR(100)  --定义变量,用于读取数据源中的数据并赋给这个变量
DECLARE Source CURSOR FOR --后面是数据源

OPEN Source
FETCH NEXT FROM Source INTO @temp  --获取第一条数据
WHILE (@@FETCH_STATUS = 0)
BEGIN
    
    --TO DO
    
    FETCH NEXT FROM Source INTO @temp --获取下一条数据
    
END 

CLOSE Source   --关闭游标
DEALLOCATE Source --删除游标引用

  游标就像C#中的foreach,只不过游标的语法稍微复杂点,需要花时间去记得。

  循环数据源中的每一条数据并赋给一个定义的变量。

 

以同步至:个人文章目录索引

posted @ 2013-09-25 23:07  TimYang  阅读(680)  评论(1编辑  收藏  举报