发布网友 发布时间:2022-04-08 09:43
共10个回答
懂视网 时间:2022-04-08 14:05
Select 2 a.xm,xk=substring(a.xk,b.number,charindex(‘,‘,a.xk+‘,‘,b.number)-b.number) 3 from 4 表A a join master..spt_values b 5 ON b.type=‘p‘ AND b.number BETWEEN 1 AND LEN(a.xk) 6 where 7 substring(‘,‘+a.xk,b.number,1)=‘,‘--1.将字符串转换为列显示 if object_id(‘tb‘) is not null drop table tb go create table tb([编号] varchar(3),[产品] varchar(2),[数量] int,[单价] int,[金额] int,[序列号] varchar(8)) insert into tb([编号],[产品],[数量],[单价],[金额],[序列号]) select ‘001‘,‘AA‘,3,5,15,‘12,13,14‘ union all select ‘002‘,‘BB‘,8,9,13,‘22,23,24‘ go select [编号],[产品],[数量],[单价],[金额] ,substring([序列号],b.number,charindex(‘,‘,[序列号]+‘,‘,b.number)-b.number) as [序列号] from tb a with(nolock),master..spt_values b with(nolock) where b.number>=1 and b.number<=len(a.[序列号]) and b.type=‘P‘ and substring(‘,‘+[序列号],number,1)=‘,‘ go drop table tb go /** 编号 产品 数量 单价 金额 序列号 ---- ---- ----------- ----------- ----------- -------- 001 AA 3 5 15 12 001 AA 3 5 15 13 001 AA 3 5 15 14 002 BB 8 9 13 22 002 BB 8 9 13 23 002 BB 8 9 13 24 */ ----------
--7.将字符串显示为行列 if object_id(‘tb‘) is not null
drop table tb
create table tb
(
id int identity(1,1),
s nvarchar(100)
) insert into tb(s) select ‘车位地址1,车位状况1|车位地址2,车位状况2|车位地址n,车位状况n‘;
with cte as( select substring(s,number,charindex(‘|‘,s+‘|‘,number)-number) as ss from tb with(nolock),master..spt_values with(nolock) where type=‘P‘ and number>=1 and number<=len(s) and substring(‘|‘+s,number,1)=‘|‘ )
select left(ss,charindex(‘,‘,ss)-1)as s1,substring(ss,charindex(‘,‘,ss)+1,len(ss))as s2 from cte;
drop table tb /** s1 s2 ----------- ------------ 车位地址1 车位状况1 车位地址2 车位状况2 车位地址n 车位状况n
MSSQL将逗号分隔的字符串转换成列显示
标签:
热心网友 时间:2022-04-08 11:13
db2数据库 有个values函数可用于你说的这种操作,但是mysql本身是 没有这样的函数的。
下面是取巧的一种写法,也能得到你想要的数据。如图:
select
热心网友 时间:2022-04-08 12:31
db2数据库 有个values函数可用于你说的这种操作,但是mysql本身是 没有这样的函数的。
下面是取巧的一种写法,也能得到你想要的数据。如图:
12345678910select trim(substring_index(substring_index(a.num,',',b.help_topic_id + 1),',' ,- 1)) AS numbfrom (select '39982665399,39023431098,39764974481,39055572973,39897342743,40127675336,40174795679' as num from al ) a JOIN apsc.help_topic b ON b.help_topic_id <(length(a.num) - length( REPLACE(a.num, ',', '') ) + 1 ) 希望能帮到你!热心网友 时间:2022-04-08 14:05
CREATE TEMPORARY TABLE tmp_table (insert into tmp_table (name) values ('name1'),('name2'),('name3');
热心网友 时间:2022-04-08 15:57
字符串按照逗号切割,切割后 插入临时表,然后输出临时表即可热心网友 时间:2022-04-08 18:05
用oracle模拟实现下,mysql中就需要考虑下al的另类表达方式
热心网友 时间:2022-04-08 20:29
楼主请自行百度列转行行转列如何查询。楼主请自行百度列转行行转列如何查询。楼主请自行百度列转行行转列如何查询。热心网友 时间:2022-04-08 23:11
SELECT '39982665399' id from al热心网友 时间:2022-04-09 02:09
mysql可以把多条记录的某个字段拼成一条记录,但是貌似没法把一个字符串拆成多条记录热心网友 时间:2022-04-09 05:23
这种活好像mysql 做不了吧,的自己写程序做吧