学习型 ASP/PHP/ASP.NET 主机 30元/年全能 ASP/PHP/ASP.NET 主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付
轻松建立自己的群组,招兵买马   
发新话题
打印

关于等级会员显示顺序的问题

关于等级会员显示顺序的问题

假如会员实行等级制,即VIP会员和普通会员2种。
查询的结果要求显示的顺序如下:
1。总体:VIP会员在普通会员前面
2。VIP会员:VIP会员之间按照会员注册日期降序排列
3。普通会员:普通会员之间按照注册日期降序排列。

SQL语句应该怎样写才能实现以上的排列顺序?

TOP

可以使用两个查询语句
select 会员名
from 会员表
where 会员id=vip会员
order by 会员注册日期 desc
select 会员名
from 会员表
where 会员id=普通会员
order by 会员注册日期 desc
具体试一下

大家都是朋友,有空就来坐坐!

TOP

因为order by 不能实现子查询,聚合和表达式
所以我想你用两个查询应该方便点
只是可能会出现两张查询出来的表
大家都是朋友,有空就来坐坐!

TOP

不知你是如何区分VIP会员与普通会员的?
不说明这点是没法写出来的,提问题应表述清楚!!!!!!!

TOP

比如,我现在有以下这张表menber:
menber_id name address adddate

menberid-1 name-1 address-1 20060101
menberid-2 name-2 address-2 20010302
menberid-3 name-3 address-3 20050204
menberid-4 name-4 address-4 20040509
menberid-5 name-5 address-5 20080529
menberid-6 name-6 address-6 20020509
menberid-7 name-7 address-7 20000517
menberid-8 name-8 address-8 19990530
menberid-9 name-9 address-9 19950525.
.
.
.
menberid-n name-n address-n 20000510

我想要对以上的会员实行VIP会员和普通会员级别(目前还没有实行),我的初步设想是表增加列:dengji_id int数据类型。
然后VIP的dengji_id=1,普通会员的dengji_id=2.

按照上面的排列原则,现在可以把VIP会员和普通会员分开排列了:
select * from menber
order by dengji_id desc
可以实现总体上VIP会员在普通会员前面,如:

menber_id name address adddate dengji_id

menberid-1 name-1 address-1 20060101 1
menberid-2 name-2 address-2 20010302 1
menberid-3 name-3 address-3 20050204 1
menberid-4 name-4 address-4 20040509 2
menberid-5 name-5 address-5 20080529 2
menberid-6 name-6 address-6 20020509 2
menberid-7 name-7 address-7 20000517 2
menberid-8 name-8 address-8 19990530 2
menberid-9 name-9 address-9 19950525 2
.
.
.
menberid-n name-n address-n 20000510 2


可是如何才能在VIP会员之间(以及普通会员之间)按照adddate进行第二次排列(即按照ADDDATE降序排列)?

TOP

select *
from menber
order by dengji_id desc,adddate desc

这样就可以了

TOP

以下是引用lili在2005-11-11 15:44:20的发言:
select *
from menber
order by dengji_id desc,adddate desc

这样就可以了

谢谢,原来可以这样写。
我看的书上太简单了,只有介绍ORDER BY XXXXX DESC/ASC,没有说这么详细。

TOP

发新话题