当前位置:编程学习 > C#/ASP.NET >>

sql 语句合并的问题

有一张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 --------------------编程问答--------------------
引用 1 楼 lin11211408 的回复:
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

看到你的帖子后我就去测试了下 这个应该是你要的结果了 --------------------编程问答--------------------
引用 6 楼 oYanYuNianHua 的回复:
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

看到你的帖子后我就去测试了下 这个应该是你要的结果了

楼上正解,我已经试验过了,可以实现,不过有多条数据不知道结果会是什么样。 --------------------编程问答--------------------
引用 7 楼 adgjlxxx 的回复:
Quote: 引用 6 楼 oYanYuNianHua 的回复:

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

看到你的帖子后我就去测试了下 这个应该是你要的结果了

楼上正解,我已经试验过了,可以实现,不过有多条数据不知道结果会是什么样。


多条貌似就有问题了- - 毕竟新手写的嘛! --------------------编程问答--------------------
引用 8 楼 oYanYuNianHua 的回复:
Quote: 引用 7 楼 adgjlxxx 的回复:

Quote: 引用 6 楼 oYanYuNianHua 的回复:

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;

A001 5
A001 west
A002 3
A002 east

====================
A001 west 5
A002 east 3

其它情况就没试。
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,