sqlserver一次插入多条数据的sql相关专题.doc
文本预览下载声明
Sqlserver一次插入多条语句的操作
如何一次将多条数据插入,如何使用数据库的“数组”
关键是charindex注意了,少用循环,效率死慢
2010
Ssc
目录
第1章 一条SQL语句 插入多条数据 3
1.1 从数据库中取值法 3
1.2 替换法利用Replace和union函数 3
第2章 SQL charindex的用法 4
第3章 Sqlserver 数组使用 5
3.1 利用replace 6
3.2 利用charindex和substring 6
第4章 SQL字符串数组操作 7
4.1 一、按指定符号分割字符串返回元素个数 7
4.2 二、按指定符号分割字符串返回元素 8
4.3 三、结合上边两个函数,象数组一样遍历字符串中的元素 9
4.4 四、检查一个元素是否在数组中 9
第5章 SQLServer(replace函数) 10
第6章 SQL中CAST和CONVERT的区别是什么? 10
第7章 总结-血的教训 11
一条SQL语句 插入多条数据
从数据库中取值法
从表2中取一些数据插入表1中 方法如下
insert into table1 (colum1,colum2) select admin, colum2 from table2
在表2中 colum1 字段不存在 可以用admin 替代 则插入的记录中 colum1 字段值全为 admin
查找前3条记录的SQL语句为
select top 3 * from table1
一次插多条还有一种写法(对新表好用)
select colum1,colum2 into table1 from table2
如果表 1 中要插入的字段在表 2 中全存在 则写法如下
insert into table1(colum1,colum2) select colum1,colum2 from table2 (区别不大)
替换法利用Replace和union函数
insert into news (newsid)
select a union
select b
declare @str varchar(200)
declare @result varchar(1000)
set @str=aaa,bb,c,d,e,ffffff
set @result = insert into news(newsid) select +replace(@str,,,union select)+
exec(@result)
SQL charindex的用法
select * from table_a where charindex(a,id)0 or charindex(b,id)0
table_a 表中 id字段中含有a或者b的记录.
---------------------------------------------------
CHARINDEX
返回字符串中指定表达式的起始位置。
语法
CHARINDEX ( expression1 , expression2 [ , start_location ] )
参数
expression1
一个表达式,其中包含要寻找的字符的次序。expression1 是一个短字符数据类型分类的表达式。
expression2
一个表达式,通常是一个用于搜索指定序列的列。expression2 属于字符串数据类型分类。
start_location
在 expression2 中搜索 expression1 时的起始字符位置。如果没有给定 start_location,而是一个负数或零,则将从 expression2 的起始位置开始搜索。
返回类型
int
注释
如果 expression1 或 expression2 之一属于 Unicode 数据类型(nvarchar 或 nchar)而另一个不属于,则将另一个转换为 Unicode 数据类型。
如果 expression1 或 expression2 之一为 NULL 值,则当数据库兼容级别为 70 或更大时,CHARINDEX 返回 NULL 值。当数据库兼容级别为 65 或更小时,CHARINDEX 仅在 expression1 和 expression2 都为 NULL 时返回 NULL 值。
如果在 expression2 内没有找到 expression1,则 CHARINDEX 返回 0。
示例
第一个代码示例返回序列wond
显示全部