sql 查询 string 上次问了sql查询,用string连接起来,同志们说用for xml path,现在遇到个新问题,
这个查出来的如果是ID组成的,像最后一个字段是由ID组成的,如何把ID转成外键表中的name ------最佳解决方案-------------------- select x.pid,stuff((select ','+a.name from a inner join B on a.antennaid=b.antennaid where b.pid=x.pid for XML path('')),1,1,'') name
from b as x
group by x.pID ------其他解决方案--------------------
我想如果我一个表中加上时间呢,再怎么实现,比如表结构是这样的:id date name,如何根据时间组成这样的形式:1 2012-01-01 name1,name2,name3 2 2012-01-02 name2,name1,name3 ------其他解决方案-------------------- 我写出来是这个样式,写出来了,但是出现了重复,SELECT b.pid,CONVERT(varchar(12) , B.intime, 111 ),LEFT(UserList,LEN(UserList)-1) FROM ( SELECT intime,pid ,
(SELECT rtrim(antennaid)+'→' FROM tracks
WHERE CONVERT(varchar(12) ,intime, 111 )=CONVERT(varchar(12) ,A.intime, 111 ) and a.pid=pid FOR XML PATH('')) AS UserList
FROM tracks A GROUP BY CONVERT(varchar(12) , intime, 111 ),intime ,pid ) B where b.pid=2代码是这样的 ------其他解决方案-------------------- 2楼的没实现你的要求?你5楼的最简单的办法就是distinct一下 ------其他解决方案--------------------
GROUP BY CONVERT(varchar(12) , intime, 111 ),pid 最后一句intime 去掉