sql="select * from [bus] where [station] like '%"&station1&"%' and '%"&station2&"%'" 

解决方案 »

  1.   

    CREATE TABLE T_Line(
    ID      nvarchar(10),  --公交线路号
    Station nvarchar(10),  --站点名称
    Orders  int)           --行车方向(通过它反应每个站的上一个、下一个站)
    INSERT T_Line 
    SELECT N'8路'  ,N'站A',1 UNION ALL
    SELECT N'8路'  ,N'站B',2 UNION ALL
    SELECT N'8路'  ,N'站C',3 UNION ALL
    SELECT N'8路'  ,N'站D',4 UNION ALL
    SELECT N'8路'  ,N'站J',5 UNION ALL
    SELECT N'8路'  ,N'站L',6 UNION ALL
    SELECT N'8路'  ,N'站M',7 UNION ALL
    SELECT N'20路' ,N'站G',1 UNION ALL
    SELECT N'20路' ,N'站H',2 UNION ALL
    SELECT N'20路' ,N'站I',3 UNION ALL
    SELECT N'20路' ,N'站J',4 UNION ALL
    SELECT N'20路' ,N'站L',5 UNION ALL
    SELECT N'20路' ,N'站M',6 UNION ALL
    SELECT N'255路',N'站N',1 UNION ALL
    SELECT N'255路',N'站O',2 UNION ALL
    SELECT N'255路',N'站P',3 UNION ALL
    SELECT N'255路',N'站Q',4 UNION ALL
    SELECT N'255路',N'站J',5 UNION ALL
    SELECT N'255路',N'站D',6 UNION ALL
    SELECT N'255路',N'站E',7 UNION ALL
    SELECT N'255路',N'站F',8
    GO--乘车线路查询存储过程
    CREATE PROC p_qry
    @Station_Start nvarchar(10),
    @Station_Stop  nvarchar(10)
    AS
    SET NOCOUNT ON
    DECLARE @l int
    SET @l=0
    SELECT ID,Station,
    Line=CAST('('+RTRIM(ID)+': '+RTRIM(Station) as nvarchar(4000)),
    Orders=Orders,
    [Level]=@l
    INTO # FROM T_Line
    WHERE Station=@Station_Start
    WHILE @@ROWCOUNT>0 
    AND NOT EXISTS(SELECT * FROM # WHERE Station=@Station_Stop)
    BEGIN
    SET @l=@l+1
    INSERT #(Line,ID,Station,Orders,[Level])
    SELECT 
    Line=a.Line+CASE
    WHEN a.ID=b.ID THEN N'->'+RTRIM(b.Station)
    ELSE N') ∝ ('+RTRIM(b.ID)
    +N': '+RTRIM(b.Station) END,
    b.ID,b.Station,b.Orders,@l
    FROM # a,T_Line b
    WHERE a.[Level]=@l-1
    AND(a.Station=b.Station AND a.ID<>b.ID
    OR a.ID=b.ID AND(
    a.Orders=b.Orders+1
    OR
    a.Orders=b.Orders-1))
    AND LEN(a.Line)<4000
    AND PATINDEX('%[ >]'+b.Station+'[-)]%',a.Line)=0
    END
    SELECT N'起点站'=@Station_Start
    ,N'终点站'=@Station_Stop
    ,N'乘车线路'=Line+N')' 
    FROM # 
    WHERE [Level]=@l 
    AND Station=@Station_Stop
    IF @@ROWCOUNT =0 --如果未有可以到达的线路,则显示处理结果表备查
    SELECT * FROM #
    GO--调用
    EXEC p_qry N'站A',N'站L'
    /*--结果
    起点站  终点站  乘车线路
    ---------- ------------ -----------------------------------------------------------
    站A    站L    (8路: 站A->站B->站C->站D->站J->站L)
    --*/给个例子
      

  2.   

    把or改成and还是不行 后台数据库是access 如何改sql语句呢?
      

  3.   

    where 后面,不是OR,而是用AND
    逻辑问题
      

  4.   

    你的数据库中一定得对线路的起点和终点进行标记,否则是查不出来的,你想,用一个站点,怎么能标度两个站点呢?
    如果数据库是这样:
    busid,busname,station1,station2
    则:
    sql="select * from [bus] where ([station1] like '%"&station1&"%' and [station2] like '%"&station2&"%') and ([station2] like '%"&station1&"%' and [station1] like '%"&station2&"%')" 
      

  5.   

    也跟着犯错了! 
    sql="select * from [bus] where ([station1] like '%"&station1&"%' and [station2] like '%"&station2&"%') or ([station2] like '%"&station1&"%' and [station1] like '%"&station2&"%')" 
      

  6.   

    declare @tb table(id int,[station] nvarchar(1000))insert @tb 
    select 1,'车辆厂文化宫→高谊街→道里十二道街→哈尔滨商厦→金太阳精品城→南马路→承德广场→靖宇头道街→靖宇七道街→靖宇十二道街→靖宇十六道街→靖宇二十道街→毛织厂→造纸厂→油石厂→木材厂→港务局' union all
    select 2,'黎华小区→太古二十道街→太古十六道街→玛克威→靖宇十二道街→靖宇七道街→靖宇头道街→承德广场→南平街→南马路→买卖街→兆麟街(哈尔滨联升广场)→建筑艺术广场→哈站→博物馆→工人文化宫→文昌街→省政府→亚麻厂→和平桥→省中医药大学→三大动力路→哈平路→花卉市场→植物园→远大都市绿洲(林科院)→肿瘤医院 'union all
    select 3,'经纬十一道街→经纬街→上游街→中央大街→兆麟公园→兆麟街(哈尔滨联升广场)→买卖街→南马路→南平街→烟厂→哈工程大学→南通大街→太平桥→先锋路→省药材公司→南直商场→桦树街→网通东直路营业厅→道外公安分局→太平桥→南通大街→哈工程大学→烟厂→南平街→南马路→买卖街→兆麟街(哈尔滨联升广场)→兆麟公园→中央大街→红霞街(临时站)→经纬街→经纬十一道街'union all
    select 4,'顾乡-康安路-省化工研究院-中心医院-安和街-安升街-北安街-哈一百-兆麟街(哈尔滨联升广场)-买卖街-南马路-南平街-南极街-新发小区-宽城街-宣化街(先锋路路口)-先锋小区-嵩山小区-辽河小区-淮河路-红旗小区'--方法一
    select * from @tb where charindex('南马路',[station])>0 
    INTERSECT
    select * from @tb where charindex('油石厂',[station])>0 --方法二
    select * from @tb where [station] like '%南马路%' AND [station] LIKE '%油石厂%'--方法三
    select * from @tb where charindex('南马路',[station])>0 AND charindex('油石厂',[station])>0 /*
    id          station
    ----------- ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
    1           车辆厂文化宫→高谊街→道里十二道街→哈尔滨商厦→金太阳精品城→南马路→承德广场→靖宇头道街→靖宇七道街→靖宇十二道街→靖宇十六道街→靖宇二十道街→毛织厂→造纸厂→油石厂→木材厂→港务局
    */