当前位置:首页 » 编程语言 » sql下标分割
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

sql下标分割

发布时间: 2023-03-07 22:20:41

1. sql如何根据隔符分割字符串

  1. 数据库自带的substring()、charindex()函数,可以根据需要截取字符串,但并不能实现分割

  2. 自己写分割函数,以下可以参考:

createfunctionGetStr
(
@strvarchar(1024),--要分割的字符串
@splitvarchar(10),--分隔符号
@indexint--取第几个元素
)
returnsvarchar(1024)
as
begin
declare@locationint
declare@startint
declare@nextint
declare@seedint
set@str=ltrim(rtrim(@str))
set@start=1
set@next=1
set@seed=len(@split)

set@location=charindex(@split,@str)
while@location<>0and@index>@next
begin
set@start=@location+@seed
set@location=charindex(@split,@str,@start)
set@next=@next+1
end
if@location=0select@location=len(@str)+1
returnsubstring(@str,@start,@location-@start)
end

2. 用SQL查询分析器查询时怎么把一个字段用“|”分割成多个

一般来讲都是从程序读取出来数据后在进行分割。
如果你非要从数据库查询出来就分割好,在sql server下只能去写split函数
if object_id(’f_split’) is not null

drop function f_split

go

create function f_split(@aString varchar(8000),@pattern varchar(10))

returns @temp table(a varchar(100))

--实现split功能 的函数

--说明:@aString,字符串,如a:b:c;@pattern,分隔标志,如 :

as

begin

declare @i int

set @aString=rtrim(ltrim(@aString))

set @i=charindex(@pattern,@aString)

while @i>=1

begin

insert @temp values(left(@aString,@i-1))

set @aString=substring(@aString,@i+1,len(@aString)-@i)

set @i=charindex(@pattern,@aString)

end

if @aString<>’’

insert @temp values(@aString)

return

end

--在下上述代码,然后就可以用了,例子:

select * from dbo.f_split(’0|418001|418002|418002’,’|’)

3. 如何将sql数据库文件分割

利用软件:“SQLDumpSplitter.exe”
将导出的数据备份文件切割,可以自定义每个文件的大小,这个软件有一个好处是不会把每条记录分开,保证了每条记录的完整性,但是如果一个表中插入的数据较多,那么会把插入操作分成好几个,放在不同的小文件当中。
所以如果导入过程当中遇到 data node 参数需要改动的问题时,首先得删除表记录,再重新导,不免会出现重复记录的情况。
SQLDumpSplitter在切割数据文件的同时会把数据库表结构也独立保存起来,方便进行数据库初始化操作。

4. SQL语言如何将表内字符串按分割符号分割存储

用replace函数,将分号或者 @ 符号, 替换为你的其他分隔符。

REPLACE
用第三个表达式替换第一个字符串表达式中出现的所有第二个给定字符串表达式。
语法
REPLACE ( ''string_replace1'' , ''string_replace2'' , ''string_replace3'' )
参数
''string_replace1''
待搜索的字符串表达式。string_replace1 可以是字符数据或二进制数据。
''string_replace2''
待查找的字符串表达式。string_replace2 可以是字符数据或二进制数据。
''string_replace3''
替换用的字符串表达式。string_replace3 可以是字符数据或二进制数据。
返回类型
如果 string_replace(1、2 或 3)是支持的字符数据类型之一,则返回字符数据。如果 string_replace(1、2 或 3)是支持的 binary 数据类型之一,则返回二进制数据。
示例
下例用 xxx 替换 abcdefghi 中的字符串 cde。
SELECT REPLACE(''abcdefghicde'',''cde'',''xxx'')GO
下面是结果集:
------------abxxxfghixxx(1 row(s) affected)

5. sql语句进行字符串分割

substr(字符串,截取开始位置,截取长度) //返回截取的字
substr('Hello World',0,1) //返回结果为 'H' *从字符串第一个字符开始截取长度为1的字符串
substr('Hello World',1,1) //返回结果为 'H' *0和1都是表示截取的开始位置为第一个字符
substr('Hello World',2,4) //返回结果为 'ello'
substr('Hello World',-3,3)//返回结果为 'rld' *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

6. sql实现字符串分割截取,以分号做标致位。

你的数据库是什么数据库?
sqlserver?oracle?

下面这个是db2的,简单改一下sqlserver应该就能用:
http://hi..com/micro0369/item/cac396e8c99fc5e9fb42ba5e

找到一个sqlserver的:
http://blog.csdn.net/xiaoyuan402/article/details/7049473

7. 如何从mysql的备份sql文本里按CREATE TABLE标记来分割成小sql文件

这个解析不好弄,其实可以换一种思路,把所有的表名全查出来,然后在按表名生成导出脚本,生成的文件就一个表一个了。
shell样例如下,仅供参考,请在自己测试环境下测试。脚本可以包装在一个大的shell里面一起执行。
一、生成所有的表名
mysql<<EOF
use cpai;
show tables;
quit
EOF
输入结果保持到tmp.txt
二、生成导出单个表数据的脚本
awk 'NR>1' tmp.txt >tables.txt #从第二行开始取
cat tables.txt |awk '{printf "mysqlmp 数据库名 %s >%s.sql\n",$1,$1}' >mysql_mp_sig.sh
三、执行mysql_mp_sig.sh脚本,既可以导出一个个表到单独的每个文件里面。