日期:2014-05-16  浏览次数:20573 次

看不懂这条SQL语句,求解释
一个叫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队比赛。
------解决方案--------------------
引用:
一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合.

select a.name,b.name from department a ,department b where a.name<b.name


--结果为这样,队只与>自已的队伍比赛
a-->bcd
b-->cd
c-->d
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

一个叫department的表,里面只有一个字段name,一共有4条纪录,分别是a,b,c,d,对应四个球队,现在四个球队进行比赛,用一条sql语句显示所有可能的比赛组合.

select a.name,b.name from department a ,department b where a.name<b.name


--结果为这样,队只与>自已的队伍比赛
a-->bcd
b-->cd
c-->d



哦,那么请问SQL语句中对字符串大小的比较是依据什么原理?
一般按照你安装时的默认排序规则来排,通常是按字母的顺序,小写在前大写在后。
------解决方案--------------------
试试这个

select * from department t1
cross department t2
where t1.[name]<>t2.[name]