首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql 查询两张表内中一张表根据另外一种表排序

2012-06-20 
sql 查询两张表其中一张表根据另外一种表排序表A序号 默认厂商12表B序号 汽车厂商1奔驰2宝马3丰田A 表默认

sql 查询两张表其中一张表根据另外一种表排序
表A 序号 默认厂商
  1 2
 
表B 序号 汽车厂商 
  1 奔驰
  2 宝马
  3 丰田
A 表默认厂商 = B表 序号

如何在查询完A表结果后 查询B表 B根据A表的结果排序 也就是 A.默认厂商对应的序号排在第一个



[解决办法]

SQL code
select b.*from b join a on b.序号=a.默认厂商order by a.序号-- try
[解决办法]
SQL code
[code=SQL]CREATE TABLE t1(    xuhao INT,    name INT)INSERT INTO t1SELECT 1, 2CREATE TABLE t2(    xuhao INT,    name VARCHAR(10))INSERT INTO t2SELECT 1, '奔驰' UNION ALLSELECT 2, '宝马' UNION ALLSELECT 3, '丰田'SELECT * FROM t1SELECT * FROM t2SELECT * FROM t2 LEFT JOIN t1 ON t2.xuhao=t1.NAME ORDER BY CASE WHEN t1.xuhao IS NOT NULL THEN 0 ELSE 1 END ------------------------xuhao    name    xuhao    name2    宝马    1    23    丰田    NULL    NULL1    奔驰    NULL    NULL
[解决办法]
SQL code
select b.* from b left join a on b.序号=a.默认厂商order by case when a.序号 is not null then 1 else 2 end,b.序号 

热点排行