学习之路三十六: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,只不过游标的语法稍微复杂点,需要花时间去记得。

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

 

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

转载于:https://www.cnblogs.com/yangcaogui/p/3339831.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值