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

一行拆两行sql

发布时间: 2022-09-08 10:44:58

‘壹’ sql一行数据拆分成多行

select Name1 Spec1 Qty1 from A
union
select Name2 Spec2 Qty2 from A
union
select Name3 Spec3 Qty3 from A

‘贰’ 想要在sql server2008中将一行拆成两行,如何操作

直接用SQL不太好操作,可以尝试做个存储过程来处理一下字符串,然后返回新的结果。

‘叁’ sql2000 表中一列内容拆分转多行语句

--搭建环境

create table #(a int,b varchar(60))

insert into # select 1,'123,456,xxx,789' union all select 2,'321,213,sss,985'

select * from #

go


------------------------------测试---------------------------------------------

--update组成查询字符串

update # set b=';'+b+';'

update # set b=replace(b,';','''')

update # set b=replace(b,',',''',''')

go

--创建中间表

create table #tmp(a int identity(1,1),co1 varchar(10),co2 varchar(10),co3 varchar(10),co4 varchar(10))

go

--如果#表中行数太多,可能会超过8000的长度,可以考虑用游标替换这部分

declare @sql varchar(8000)

set @sql=''

select @sql=@sql+b+' union all select ' from #

select @sql='select '+left(@sql,len(@sql)-17)

select @sql='insert into #tmp(co1,co2,co3,co4) '+@sql

print @sql

exec(@sql)

select * from #tmp

---------------------------------

select a,co1 from #tmp union all

select a,co2 from #tmp union all

select a,co3 from #tmp union all

select a,co4 from #tmp

order by a


‘肆’ SQL server 一行拆多行

;WITH CTE AS
(
SELECT cname,dqty1,dqty1 AS row
FROM TID
UNION ALL
SELECT cname,dqty1,row-1
FROM CTE
WHERE row>1
)
SELECT * FROM CTE
ORDER BY CTE.cname,CTE.dqty1,CTE.row
OPTION (MAXRECURSION 0)

‘伍’ Oracle中怎么把查出来的一行结果拆分为两行

这种特殊格式只能用oracle的pl/sql语言来完成了

‘陆’ SQL 2012 一行拆多行

比较简单
1、首先以【,】为间隔符,拆分每行为多行
2、然后拆分其他行,然后用拆分后的行号和ID进行关联
这样就可以实现

‘柒’ sql 怎么把一行语句写成两行

用 回车键 举行了

‘捌’ SQL数据库 怎么将一行数据变成多行

用一个循环。
先用参数取到到底要变成多少行,和单价
declare
@t
int
declare
@sal
nvarchar(8)
根据需求或实际情况将应变为多少行这个烤取给变量@t,单价取给@sal
设置循环的起始数值
declare
@i
int
set
@i=1
开始循环
while(@i<=@t)
begin
--将单行的数据插入需要的表
insert
into(……)
values(……)
--循环参数自增
set
@i=@i+1
end

‘玖’ sql一行拆分多行记录

看个例子 改改再用 应该没问题
QL> select * from t00;

ID ACHAR
---------- ----------
1 ab,ac,ad
1 cc,cf
2 bb,bc,be

SQL> select * from (select id,regexp_substr(achar,'[^,]+',1,level) achar from t00 connect by level<=length(achar)-length(regexp_replace(achar,',',''))+1) group by id,achar order by id ;

ID ACHAR
---------- --------------------
1 ab
1 ac
1 ad
1 cc
1 cf
2 bb
2 bc
2 be

已选择8行。

‘拾’ sql 语句怎么将一行拆分成两行

先创建spilt方法,然后调用就行。
1.
--创建function
create or replace function split
(
p_list varchar2,
p_sep varchar2 := ','
) return type_split pipelined
is
l_idx pls_integer;
v_list varchar2(50) := p_list;
begin
loop
l_idx := instr(v_list,p_sep);
if l_idx > 0 then
pipe row(substr(v_list,1,l_idx-1));
v_list := substr(v_list,l_idx+length(p_sep));
else
pipe row(v_list);
exit;
end if;
end loop;
return;
end split;

2.select * from table(split('曹xx,中XX'));