sql-将字符串按指定字符分割插入指定表中
CREATE PROC SPLIT(
@STR VARCHAR(MAX), --截取字符串
), --截取字符
) --存放表名
)
AS
BEGIN
)
IF(OBJECT_ID(@TABLE) IS NOT NULL)
BEGIN
SELECT '创建表失败,该表在数据库中已存在。'
RETURN
END
ELSE
BEGIN
BEGIN TRY
/*
PRINT 'CREATE TABLE ' + @TABLE + '
(
ID INT IDENTITY(1,1),
Character varchar(200)
)'
*/
EXEC('CREATE TABLE ' + @TABLE + '
(
ID INT IDENTITY(1,1),
Character varchar(200)
)')
END TRY
BEGIN CATCH
SELECT '创建表出错,错误详情:' + ERROR_MESSAGE()
RETURN
END CATCH
END
) = NULL
DECLARE @SQL VARCHAR(MAX) = ''
PRINT @CHARINDEX
PRINT @SQL
) )
BEGIN
)
SELECT @SQL = 'INSERT INTO ' + @TABLE + '(Character)'
+ ' SELECT SUBSTRING(''' + @STR + ''',' + @CHARINDEX + '+1,CASE CHARINDEX(''' + @SPLIT_STR + ''',''' + @STR + ''',' + @CHARINDEX + ' + 1) WHEN 0 THEN LEN(''' + @STR + ''') + 1 ELSE CHARINDEX(''' + @SPLIT_STR + ''',''' + @STR + ''',' + @CHARINDEX + ' + 1) END - ' + @CHARINDEX + ' - 1)
WHERE ISNULL(SUBSTRING(''' + @STR + ''',' + @CHARINDEX + '+1,CASE CHARINDEX(''' + @SPLIT_STR + ''',''' + @STR + ''',' + @CHARINDEX + ' + 1) WHEN 0 THEN LEN(''' + @STR + ''') + 1 ELSE CHARINDEX(''' + @SPLIT_STR + ''',''' + @STR + ''',' + @CHARINDEX + ' + 1) END - ' + @CHARINDEX + ' - 1),'''') <> '''''
BEGIN TRY
EXEC(@SQL)
END TRY
BEGIN CATCH
SELECT '分割错误,错误信息:' + ERROR_MESSAGE()
END CATCH
--PRINT @CHARINDEX
--PRINT @SQL
) );
END
EXEC('SELECT * FROM ' + @TABLE)
END
GO
--调用
EXEC SPLIT '2.3.4.3.','.','TEST_1'
--删除表
DROP TABLE TEST_1
--查询表
SELECT * FROM test_1
--删除存储过程
drop proc split
sql-将字符串按指定字符分割插入指定表中的更多相关文章
- UDF_表值函数与标量函数的区别_分割字符串成单个的字符并返回表(插入到表中)
UDF_区别_分割字符串成单个的字符并返回表(插入到表中) /* SQL表值函数和标量值函数的区别 实验环境:SQL Server 2014,参考maomao365有改编 在sqlserver中存储过 ...
- php把字符串指定字符分割成数组
<?php $str="1|2|3|4|5|"; $var=explode("|",$str); print_r($var); ?> $var=ex ...
- [SQL]开启事物,当两条插入语句有出现错误的时候,没有错误的就插入到表中,错误的语句不影响到正确的插入语句
begin transaction mustt insert into student values(,'kkk','j大洒扫','j','djhdjh') insert into student v ...
- 【C#常用方法】3.将DataTable一次性插入数据库表中(使用SqlBulkCopy)
将DataTable一次性插入数据库表中(使用SqlBulkCopy) 1.SqlBulkCopy简介 SqlBulkCopy类是ADO.NET中专门用于数据库批量插入数据的类,其批量插入的执行速度是 ...
- SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型
原文:SQL Server 2008空间数据应用系列五:数据表中使用空间数据类型 友情提示,您阅读本篇博文的先决条件如下: 1.本文示例基于Microsoft SQL Server 2008 R2调测 ...
- oracle 把查询结果插入到表中几种方式
转载:Oracle中把一个查询结果插入到一张表中 以下是信息留存: 一.Oracle数据库中,把一张表的查询结果直接生成并导入一张新表中. 例如:现有只有A表,查询A表,并且把结果导入B表中.使用如下 ...
- .NET MVC通过反射获取数据修改历史记录,并插入数据表中
本文属于原创,转载时请标明出处! 折磨了我一个晚上的问题,奈何对物理的反射印象太深了,整天去想着物理的反射.折射怎么解.感谢少将哥哥给我的指点,经过一个晚上对反射的恶补,最终搞定了.纪念一下. 1.核 ...
- mysql存储过程之遍历多表记录后插入第三方表中
自从学过存储过程后,就再也没有碰过存储过程,这是毕业后写的第一个存储过程. 因为项目里设备的种类比较多,分别存在不同的数据表中,java中对应不同的java bean对象,想要统一管理有点困难.最近正 ...
- SQL:将字符串以特定字符分割并返回Table
split 语法 ALTER FUNCTION [dbo].[F_SPLIT] ( @str VARCHAR(MAX) , ) ) /********************************* ...
随机推荐
- java中的注解(Annotation)
转载:https://segmentfault.com/a/1190000007623013 简介 注解,java中提供了一种原程序中的元素关联任何信息.任何元素的途径的途径和方法. 注解是那些插入到 ...
- k8s入门系列之guestbook快速部署
k8s集群以及一些扩展插件已经安装完毕,本篇文章介绍一下如何在k8s集群上快速部署guestbook应用. •实验环境为集群:master(1)+node(4),详细内容参考<k8s入门系列之集 ...
- 解决Office互操作错误"检索COML类工厂中 CLSID为 {xxx}的组件时失败,原因是出现以下错误: 80070005"
Excel为例(其他如Word也适用)文件数据导入时报出以下错误: 检索COML类工厂中 CLSID为 {00024500-0000-0000-C000-000000000046}的组件时失败,原因是 ...
- 总结运行SSIS包的几种方式
方式一: 在BIDS里直接跑. 这个BIDS指的就是SQL Server Business Intelligence Development Studio,对于.net开发者来说它就是Visual S ...
- 同步github上fork出来的分支
1,clone自己的账号里fork库的分支到本地 git clone 地址_branch 2,增加远程原始分支 git remote add upstream 地址_master 3,fetch原始源 ...
- .NET XML序列化与反序列化
闲着没事,写了两个通用的XML序列化与反序列化的方法. 贴出来当作笔记吧! /// <summary> /// XML序列化 /// </summary> /// <ty ...
- (转)学习使用Jmeter做压力测试(三)--数据库测试
数据库测试 JMeter可以做为Web服务器与浏览器之间的代理网关,以捕获浏览器的请求和Web服务器的响应,这样就可很容易的生成性能测试脚本. 根据脚本,JMeter可通过线程组来模拟真实用户对Web ...
- Visual Studio配色方案
Eclipse开源工具和VS在诸多方面真的是差距非常大,无奈Java编程,使用VS非常麻烦.所以只能选择Eclipse 但是Eclipse的系统配色,又实在是不舒服,于是抽时间,从VS上抠了一份默认的 ...
- XP 安装Oralce 10g 数据库
今天使用XP新建一个新数据库,下面是自己的操作方法, 电脑版本型号:Microsoft Windows XP Professional 版本 2002 Service Pack 3 Oracle版本型 ...
- 代码高亮美化插件-----SyntaxHighlighter
IT类文章博客,代码高亮美化插件-----SyntaxHighlighter 最近在做一个类似个人博客的网站,因为文章中会用到各种代码,主要是Javascript,CSS,PHP,XML等.这些代码如 ...