一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合.
select a.name,b.name from department a ,department b where a.name<b.name
------解决方案--------------------
这样是9个结果是吧。
这样写,更容易理解:
select a.name,b.name from department a ,department b where a.name<>b.name
就是比如,a队,可以和除自己以外的其他3个队,进行比赛,那么就会有3条记录,
同样,b队,也一样,也是会和a,c,d队进行比赛,又是3条记录
c队,和a,b,d队比赛。
d队,和a,b,c队比赛。
------解决方案--------------------
--结果为这样,队只与>自已的队伍比赛
a-->bcd
b-->cd
c-->d
------解决方案--------------------
一般按照你安装时的默认排序规则来排,通常是按字母的顺序,小写在前大写在后。
------解决方案--------------------
试试这个
select * from department t1
cross department t2
where t1.[name]<>t2.[name]