有一张TEST表,里面有PRO_ID、PRO_NAME两个字段,现数据如下:
PRO_ID PRO_NAME
A001 炼狱蝰蛇
A001 5
我要的结果是:
PRO_ID PRO_NAME PRO_NUM
A001 炼狱蝰蛇 5
怎么通过sql语句虚构一列把两条合并成一条记录
SQL
行业数据
--------------------编程问答--------------------
select a.*,b.pro_name
from test a,test b
where a.pro_id=b,pro_id
--------------------编程问答--------------------
出现了4条记录,这不是我想要的
--------------------编程问答--------------------
来个大虾帮帮忙
--------------------编程问答--------------------
同样效果
http://zhidao.baidu.com/question/495370916.html
--------------------编程问答--------------------
select distinct a.*,b.pro_name
from test a,test b
where a.pro_id=b,pro_id
--------------------编程问答--------------------
SELECT Pro_ID,Pro_Name,(SELECT Pro_Name FROM Test WHERE b.Pro_ID = Pro_ID AND ISNUMERIC(Pro_Name) = 1) as Pro_Num
FROM Test as b Where ISNUMERIC(Pro_Name) = 0
SELECT Pro_ID,Pro_Name,(SELECT Pro_Name FROM Test WHERE b.Pro_ID = Pro_ID AND ISNUMERIC(Pro_Name) = 1) as Pro_Num
FROM Test as b Where ISNUMERIC(Pro_Name) = 0
看到你的帖子后我就去测试了下 这个应该是你要的结果了
楼上正解,我已经试验过了,可以实现,不过有多条数据不知道结果会是什么样。
多条貌似就有问题了- - 毕竟新手写的嘛!
多条是有问题,如果不是这种格式的话,就会出现很多空值。
--------------------编程问答--------------------
按你的表,两个字段的类型应该都是字符型,如果,你的每一个PRO_ID在表中只出现两次,而且PRO_NAME表示名称的总不以数字开头的话,可以试试这个:
select a.*,b.pro_name pro_num from test a,test b where a.pro_id=b.pro_id and a.pro_name>b.pro_name;