Sql :如何将列的单个值拆分为两个,并随长度一起返回值
我有一个表“test”,在name列中有名字和姓氏。如何拆分名字、姓氏以及返回名字和姓氏的长度。 例如:Sql :如何将列的单个值拆分为两个,并随长度一起返回值,sql,oracle,Sql,Oracle,我有一个表“test”,在name列中有名字和姓氏。如何拆分名字、姓氏以及返回名字和姓氏的长度。 例如: name hello world Thomas Edison Christopher Columbus 我希望结果如下: First_name FirstName_length last_name LastName_length hello 5 world 5 Thomas 6
name
hello world
Thomas Edison
Christopher Columbus
我希望结果如下:
First_name FirstName_length last_name LastName_length
hello 5 world 5
Thomas 6 Edison 6
Christopher 11 Columbus 8
。。同样
只需将表名和列名替换为实际名称即可
select substr("name", 1, instr("name", ' ')-1) first_name,
length(substr("name", 1, instr("name", ' ')-1)) First_Name_length ,
substr("name",instr("name", ' ')+1) Last_Name,
length(substr("name",instr("name", ' ')+1)) Last_name_length
from table_name
O/p
在问这个问题之前,我想知道您尝试过什么查询。它是否有效。标记为answer谢谢你的回复,但我有一列“name”,我想拆分这些值,并得到每个值的长度。在上面的查询中,没有提到列名,所以它不适用。op没有要求这样做。谢谢所有为我工作的人。这个查询是由sqlfiddle提供的:选择substr(“name”,1,instr(“name”),instr(“name”),1)first_name,length(substr(“name”,1,instr(“name)”)-1)first_name_length,substr(“name”,instr(“name”),Last_name,长度(substr(“name”,instr(“name)”,“”)+1)表中的姓氏长度
select split_part(name,' ',1) as first_name,
length(split_part(name,' ',1)) as firstname_length,
split_part(nme,' ',2) as last_name,
length(split_part(name,' ',2)) as lasttname_length from table_name
select substr("name", 1, instr("name", ' ')-1) first_name,
length(substr("name", 1, instr("name", ' ')-1)) First_Name_length ,
substr("name",instr("name", ' ')+1) Last_Name,
length(substr("name",instr("name", ' ')+1)) Last_name_length
from table_name
FIRST_NAME First_LENGTH LAST_NAME LAST_LENGTH
hello 5 world 5
Thomas 6 Edison 6
Christopher 11 Columbus 8