日期:2014-05-18  浏览次数:20443 次

SQL能这样查询吗?
车号       车站1     车站2     车站3     车站4
  1               A           B             C               D
  2               F           D             E               K

能不能得到1号车经过哪些站点?还有能不能查询哪些车经过A站?

------解决方案--------------------
可以啊
查询1号车经过哪些站点:
SELECT *
FROM 表 WHERE 车号=1
查询A站有哪些车经过:
SELECT *
FROM 表 where 车站1= 'A ' or 车站2= 'A ' or 车站3= 'A ' or 车站4= 'A '
------解决方案--------------------
--1
SELECT * FROM tb WHERE 车号=1

--2
SELECT 车号 FROM tb where 车站1= 'A ' or 车站2= 'A ' or 车站3= 'A ' or 车站4= 'A '

------解决方案--------------------
--楼主在送分?


--1号车经过哪些站点

select *
from 表名
where 车号=1


--查询哪些车经过A站

select *
from 表名
where 车站1= 'A ' or 车站2= 'A ' or 车站3= 'A ' or 车站4= 'A '

------解决方案--------------------
1.select * from 表 where 车号 =1;
2.车站太多 ,建立个表的全文索引 ,然后在查
select * from 表 where contains(*, '车站 ');
------解决方案--------------------
根据题意应该是
qgmzhfj
说的最确切,其它的更具体
一、无可厚非,select * from 表 where 车号 =1;
二、车站太多 ,建立个表的全文索引 ,然后在查
select * from 表 where contains(*, '车站 ');
------解决方案--------------------
/*1号车经过哪些站点*/
Select * From 车站表 Where 车号=1

/*如果车站不止4个,假如有100个车站的话,用下面的动态语句]
可避免条件里写100个Or,Where 车站1 = 'A ' or 车站2 = 'A ' ...车站100 = 'A ' */
Declare @sql Varchar(8000),@Station Varchar(20)
Set @Station= 'A ' ---这里写站号如:A站
Set @sql= 'Select 车号 From 车站表 Where '
Select @sql=@sql+Name+ '= ' ' '+@Station+ ' ' ' Or '
From sysColumns Where id=object_id( '车站表 ') And Name <> '车号 ' Order By colID
Set @sql=Left(@sql,Len(@sql)-2)
Exec(@sql)