公交线路查询问题“子查询返回的值不止一个……”

bing475879749 2010-07-07 09:11:01
下面是建好的表和数据

--表名gongjiao:公交线路
--num:车次
--xianlu:线路,按此车次的站台顺序排列,用","隔开
--info:车次信息
CREATE TABLE [dbo].[gongjiao](
[id] [int] IDENTITY(1,1) NOT NULL,
[num] [nvarchar](20) COLLATE Chinese_PRC_CI_AS NULL,
[xianlu] [nvarchar](2000) COLLATE Chinese_PRC_CI_AS NULL,
[info] [nvarchar](2000) COLLATE Chinese_PRC_CI_AS NULL,
PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]

--表名zhan:站台
--area:站台名
--near:站台附近的标志性建筑,多个用","隔开
--vr:站台附近的实景图链接
CREATE TABLE [dbo].[zhan](
[id] [int] IDENTITY(1,1) NOT NULL,
[area] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[near] [varchar](500) COLLATE Chinese_PRC_CI_AS NULL,
[vr] [varchar](150) COLLATE Chinese_PRC_CI_AS NULL,
CONSTRAINT [PK_zhan] PRIMARY KEY CLUSTERED
(
[id] ASC
)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
) ON [PRIMARY]
SET ANSI_PADDING OFF

GO


insert into gongjiao select '22路','5,2,1,4,3','火车站——某某大学 时间:7:00——22:00'
union all select '36路','5,2,7,8,3','火车站——某某大学 时间:7:00——18:00'
union all select '18路','5,2,5,1,6','火车站——开发区 时间:7:00——21:45'


insert zhan select '站台1','',''
union all select '站台2','',''
union all select '某某大学','肯德基,沃尔玛','domain.gif'
union all select '站台4','',''
union all select '火车站','步行街,某某购物广场',''
union all select '开发区','某某广场',''
union all select '站台7','',''
union all select '站台8','',''

GO


我用下面的SQL语句示意我的需求
select id,area,near,vr,num=(select top 1 num from gongjiao where CHARINDEX(','+RTRIM(a.id)+',',','+xianlu+',')>0 ) 
from zhan as a


我想查出经过每个站台的都有哪几路车,比如经过“火车站”的有22路,18路,36路,用","隔开放到num字段里,问题是不能查多条记录,不知道怎么弄,期待高手!
...全文
43 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
SQL77 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 josy 的回复:]
SQL code
select id,area,near,vr,
num=stuff((select ','+num from gongjiao where CHARINDEX(','+RTRIM(a.id)+',',','+xianlu+',')>0 for xml path('')),1,1,'')
from zhan as a
group by id,area,near,vr

……
[/Quote]
.............
百年树人 2010-07-07
  • 打赏
  • 举报
回复
select id,area,near,vr,
num=stuff((select ','+num from gongjiao where CHARINDEX(','+RTRIM(a.id)+',',','+xianlu+',')>0 for xml path('')),1,1,'')
from zhan as a
group by id,area,near,vr

/**
id area near vr num
----------- ---------- -------------------- -------------------- -------------------------------------------------
1 站台1 22路,18路
2 站台2 22路,36路,18路
3 某某大学 肯德基,沃尔玛 domain.gif 22路,36路
4 站台4 22路
5 火车站 步行街,某某购物广场 22路,36路,18路
6 开发区 某某广场 18路
7 站台7 36路
8 站台8 36路

(8 行受影响)
**/

22,210

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧