當前位置:首頁 » 編程語言 » sql分組將一列的內容分成多列
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql分組將一列的內容分成多列

發布時間: 2022-08-26 12:26:57

sql語句拆分表中內容,並變成兩列

USEtempdb
GO
ALTERFUNCTIONDBO.SPLT
(@COLNVARCHAR(200),
@PRANVARCHAR(10)
)
RETURNSNVARCHAR(100)
AS

BEGIN
DECLARE@NUMNVARCHAR(100),@STRNVARCHAR(100),@IINT
SET@NUM=''
SET@STR=''
SET@I=1

WHILE(@I<=LEN(ISNULL(@COL,'')))
BEGIN
IFSUBSTRING(@COL,@I,1)IN('0','1','2','3','4','5','6','7','8','9')--說明是數字
SET@NUM=@NUM+SUBSTRING(@COL,@I,1)
ELSE
SET@STR=@STR+SUBSTRING(@COL,@I,1)
SET@I=@I+1

END
IF@PRA='STR'
SET@NUM=@STR
RETURN@NUM
END
GO
SELECTdbo.SPLT('A123,B23,BD21','STR'),dbo.SPLT('A123,B23,BD21','')

Ⅱ SQL2008 一列分多列

select left(列名,charindex(' ',列名,charindex(' ',列名)+1)) as ip,
right(列名,len(列名)-charindex(' ',列名,charindex(' ',列名)+1)-1) as [name]
from 表名
如果中間只有1個空格的話這樣應該可以的
有特別的情況,沒人回答的話可以找我
但是我在的時間很少
沒測試覺得可行 不行的話就當給你個思路吧

Ⅲ 在sql中如何把一列的值拆分成多列,求高手指教

其實可以理解為,多列取同一個欄位的值。

Ⅳ mysql 存儲過程把一列分多列

不需要寫過程的,就是個行轉列查詢,使用group by分組即可,語句如下:
INSERT INTO New_Mydata
(Nameid, Allc1, Allc2, Allc3, Allc4, ALL)
SELECT Nameid,
SUM(CASE Allc WHEN '滿意' THEN 1 ELSE 0 END),
SUM(CASE Allc WHEN '一般' THEN 1 ELSE 0 END),
SUM(CASE Allc WHEN '不滿意' THEN 1 ELSE 0 END),
SUM(CASE Allc WHEN '未平' THEN 1 ELSE 0 END),
SUM(*)
FROM Mydat
GROUP BY Nameid

Ⅳ sql中將一列按照不同長度分成幾列

用CASE WHEN來判斷,分解:

selectCASEWHENLen(a.menu_code)=2THENa.menu_codeELSE''ENDASMenu1
,CASEWHENLen(a.menu_code)=4THENa.menu_codeELSE''ENDASMenu2
,CASEWHENLen(a.menu_code)=6THENa.menu_codeELSE''ENDASMenu3
,a.menu_name
,c.role_name,e.user_in_station_mc,e.user_name,e.bm
frommenu_nameasa
leftjoinmenu_userasbonb.menu_code=a.menu_code
leftjoinuser_roleasconc.role_code=b.user_code
leftjoinuser_role_dyasdond.role_code=c.role_code
leftjoinuser_rightaseone.user_code=d.user_code
wheree.user_state='正常'
anda.menu_namelike'%交款%'

Ⅵ 在SQL中怎麼把一列字元串拆分為多列,請高手賜教

--首先,你是按什麼規則拆?我舉個例子你要按欄位中的逗號拆開,假設欄位名叫text
--用charindex和substring這2個函數
selectsubstring(text,1,charindex(',',text)-1)as[before],substring(text,charindex(',',text),len(text))as[after]fromtable

Ⅶ 在SQL中如何把一列字元串拆分為多列,請高手

--首先,你是按什麼規則拆? 我舉個例子 你要按欄位中的逗號拆開,假設欄位名叫text--用charindex和substring這2個函數 select substring(text,1,charindex(',',text)-1) as [before], substring(text,charindex(',',text),len(text)) as [after] from table

Ⅷ sql如何將一張表中的一列數據分為兩列顯示

目前找到一個辦法。

select id,max(money),sum(money)-max(money)
from tt
group by id

Ⅸ sql 一列如何按條件分成多列

------------------------------------------------------------------------
-- author:jc_liumangtu(【DBA】小七)
-- date: 2010-03-26 09:37:30
-- version:
-- Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
-- Oct 14 2005 00:33:37
-- Copyright (c) 1988-2005 Microsoft Corporation
-- Developer Edition on Windows NT 5.1 (Build 2600: Service Pack 3)
--
------------------------------------------------------------------------use test
set nocount on
if object_id('test4','U') is not null
drop table test4
go
create table test4
(item int ,date char(8),type char(2),quty int)
insert into test4
select 1000 , '20100101', 'A' , 100 union all
select 2000 , '20100101' ,'B' , 200 union all
select 1000 , '20100101' ,'C' , 100 union all
select 2000 , '20100101' , 'D' , 100
select * from test4select item ,date
,max(case type when 'A' then quty else 0 end) [typeA]
,max(case type when 'B' then quty else 0 end) [typeB]
,max(case type when 'C' then quty else 0 end) [typeC]
,max(case type when 'D' then quty else 0 end) [typeD]
from test4 group by item,date
item date type quty
----------- -------- ---- -----------
1000 20100101 A 100
2000 20100101 B 200
1000 20100101 C 100
2000 20100101 D 100item date typeA typeB typeC typeD
----------- -------- ----------- ----------- ----------- -----------
1000 20100101 100 0 100 0
2000 20100101 0 200 0 100

Ⅹ sql查詢中,如何將某列 分成 兩列。

SELECT PAccM33g02,

CASE PAccM33g02

WHEN 0 THEN PAccM33g02 END PAccM33g02_J,

CASE PAccM33g02

WHEN 1 THEN PAccM33g02 END PAccM33g02_C

FROM PAccM3307