當前位置:首頁 » 編程語言 » sql分割
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql分割

發布時間: 2022-02-07 14:38:00

sql分割字元串查詢,分組統計

首先掌握sql中分割字元串的方法:
declare @sql varchar(2000),@tsql nvarchar(max),@split varchar(100)
set @sql='1,3,5,6,8' --保存的字元
set @split=','--分隔符
select @tsql='select '''+replace(@sql,@split,''' union all select ''')+''''
exec(@tsql)
----完成之後將查詢結果保存在一張臨時表中。
然後使用 select count(*) , 欄位名 from 表名 group by 欄位名 就可以得到您想要的結果了。
希望對您有所幫助!

② 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個字元

③ SQL 一個欄位進行拆分

建議你使用導出純文本,之後採用ultraedit處理替換間隔符,然後對應建立一個表再導入回去即可。
也是比較省力氣的。

④ sql語句 拆分

select 這個地方就是查詢的欄位,然後IP是自定義的名字 'IP'=substring(拆分的欄位名,b.number,charindex('拆分的符號',拆分的欄位名+',',b.number)-b.number) from 你的表名 a
inner join master.dbo.spt_values b on b.number between 1 and len(拆分的欄位名)
and substring(','+拆分的欄位名,b.number,1)='拆分的符號'
where b.type='P' 後邊可以是條件 and Id=1

⑤ sql 分割查詢語句

select * from tbl where teacherld like '%,2,%' or teacherld like '%,2' or teacherld like '2,%'

⑥ sql分割字元串

不知道你用的是什麼資料庫,資料庫不同所用的函數也不一樣。
不過大概意思可以說一下,先定位「:」找到他的位置,然後定位")",找到他的位置。(如果不寫第幾個,那麼默認找第一個)
然後用")"的位置-「:」的位置-1=截取長度
「:」的位置+1=截取開始點
大概就這么個意思
舉例:
AA公司(原名:某有限公司) 原名:KKK公司) 某有限公司
這時用定位函數知道「:」在第8位 「)」在第14位
那麼就需要截取14-8-1=5位
截取的開始點為第9位
也就是說截取9到13位,因為第9位也算,所以就是9,10,11,12,13五個字元,就是某有限公司。
因為所用資料庫不一樣,定位函數也不同,oracle用的是instr,並用substr截取。
sql server用的什麼函數,我不是很清楚。不過大概意思也是這樣的。

⑦ SQL如何把多條數據拆分

drop table test
create table test
(
VID int primary key,
VNum int,
vname varchar(10),
score int
)
insert into test values(1,001,'大海',20)
insert into test values(2,001,'大海',30)
insert into test values(3,001,'大海',40)

drop function fn_test
alter function fn_test
(
@vnum int
)
returns varchar(20)
as
begin
declare @str varchar(20)
select @str = isnull(@str+',','') + cast(score as varchar(2)) from test
return @str
end
go

select top 1 vid,vnum,vname,dbo.fn_test(vnum) as '分數' from test
/**
vid vnum vname 分數
----------- ----------- ---------- --------------------
1 1 大海 20,30,40

(所影響的行數為 1 行)
**/

可以了 呵呵呵呵呵

***********************************************************************************************這個是在SQL SERVER里執行的啊****************

⑧ SQL拆分逗號分隔的字元串

1、首先點擊新建查詢按鈕,新建一個查詢。

⑨ sql 分割字元串

select SUBSTRING (A列 , 1 ,CHARINDEX ( ' ' , A列 ) ) from A表
這個可以把A列空格前的字元取出來。
更新
update A表 set B列=(select SUBSTRING (A列 , 1 ,CHARINDEX ( ' ' , A列 ) ))

⑩ sql查詢里 怎麼拆分字元串(按「/」拆分)

先建立一個自定義函數,之個函數非常有用,建議收入自已的資料庫
CREATE FUNCTION mysplit--將以某分隔符分段的字串,按指定的順序號提取子串:

(@strnvarchar(2000),--源字串
@snint,--提取序號
@Delivarchar(1)--分隔符
)
RETURNSvarchar(100)
AS
BEGIN
declare@firstint,@lastint,@resultvarchar(1000),@sn0int
select@sn0=0,@first=0,@LAST=1,@str=@str+REPLICATE(@DELI,1)
while@sn0!=@sn
begin
select@sn0=@sn0+1,@first=@LAST,@last=charindex(@DELI,@str,@LAST)+1
end
if@last-@first-1<0
set@result=''
else
SET@RESULT=SUBSTRING(@str,@FIRST,@LAST-@FIRST-1)
RETURN(@RESULT)
END

查詢方法:

DECLARE@AVARCHAR(100),@BVARCHAR(100),@CVARCHAR(100)
SELECT
@A=DBO.MYSPLIT('A|B|C',1,'|'),
@B=DBO.MYSPLIT('A|B|C',2,'|'),
@C=DBO.MYSPLIT('A|B|C',3,'|')
SELECT@A,@B,@C