学习之路三十六: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,只不过游标的语法稍微复杂点,需要花时间去记得。
循环数据源中的每一条数据并赋给一个定义的变量。
以同步至:个人文章目录索引