當前位置:首頁 » 編程語言 » 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腳本,既可以導出一個個表到單獨的每個文件裡面。