mysql怎么把固定的几个字符串,转成列的形式作为临时表查询
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了mysql怎么把固定的几个字符串,转成列的形式作为临时表查询相关的知识,希望对你有一定的参考价值。
比如:
'39982665399','39023431098','39764974481','39055572973','39897342743','40127675336','40174795679'
有这么几个数字,怎么写sql能出来列的效果比如:
|id|
|'39982665399'|
|'39023431098'|
|'39764974481'|
|'39055572973'|
|'39897342743'|
|'40127675336'|
|'40174795679'|
db2数据库 有个values函数可用于你说的这种操作,但是mysql本身是 没有这样的函数的。
下面是取巧的一种写法,也能得到你想要的数据。如图:
selecttrim(substring_index(substring_index(a.num,',',b.help_topic_id + 1),',' ,- 1)) AS numb
from (
select
'39982665399,39023431098,39764974481,39055572973,39897342743,40127675336,40174795679' as num
from dual ) a
JOIN apsc.help_topic b ON b.help_topic_id <(length(a.num) - length( REPLACE(a.num, ',', '') ) + 1 )
希望能帮到你! 参考技术A
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 dual ) a JOIN apsc.help_topic b ON b.help_topic_id <(length(a.num) - length( REPLACE(a.num, ',', '') ) + 1 ) 希望能帮到你! 参考技术B CREATE TEMPORARY TABLE tmp_table (name VARCHAR(10) NOT NULL
);insert into tmp_table (name) values ('name1'),('name2'),('name3');
参考技术C 字符串按照逗号切割,切割后 插入临时表,然后输出临时表即可 参考技术D
用oracle模拟实现下,mysql中就需要考虑下dual的另类表达方式
在delphi中如何把大的字符串分成固定大小的几个小字符串
假设我有一个CString=1234567890;的字符串,怎么可以把它分割成(3个是一个小字符串)
CString1=123;
CString2=456;
CString3=789;
ctring4=0
在delphi中哦
给你随手写了一个:
procedure TForm1.Button1Click(Sender: TObject);
var
s: String;
s1, s2, s3, s4: String;
i: Integer;
begin
s := '1234567890';
i := 1;
s1 := Copy(s, i, 3);
ShowMessage(s1);
Inc(i, 3);
s2 := Copy(s, i, 3);
ShowMessage(s2);
Inc(i, 3);
s3 := Copy(s, i, 3);
ShowMessage(s3);
Inc(i, 3);
s4 := Copy(s, i, 1);
ShowMessage(s4);
end; 参考技术A 没分,你也太抠了
procedure TForm1.Button1Click(Sender: TObject);
var
CString,CString1,CString2,CString3,CString4:string;
begin
CString:='1234567890';
CString1:=Copy(CString,1,3);//拷贝从第1个字符开始的3个字符
CString2:=Copy(CString,4,3);//拷贝从第4个字符开始的3个字符
CString3:=Copy(CString,7,3);
CString4:=Copy(CString,10,1);
end;
回答完毕,谢谢。。。。 参考技术B copy('abcde',3,2);
3表示从第几个取起,2表示取几个。结果为cde
以上是关于mysql怎么把固定的几个字符串,转成列的形式作为临时表查询的主要内容,如果未能解决你的问题,请参考以下文章