当前位置:数据库 > SQLServer >>

求MSSQL查询语句

求查询语句: 表中含有时间(TimeA)与地址(Addr)字段,想让查询结果先按时间排序,早找一条时间最早的记录后,接下来找与该记录相近地址的记录,完了后再按时间查找记录,与地址相近的记录。结果如下: TimeA Addr 2008-4-1 12:12 人民路12号 (这条记录的时间最早) 2008-4-1 14:12 人民路1号 (与第一条记录相近的地址) 2008-4-1 18:12 人民路21号 2008-4-1 21:12 人民路22号 2008-4-1 13:12 中山路2号 (与第一条记录相近的地址没了后,按时间查询得到记录) 2008-4-1 17:12 中山路12号 2008-4-1 19:12 中山路13号 2008-4-1 15:12 锦绣路3号 2008-4-1 23:12 锦绣路6号 2008-4-1 16:12 南京路4号 2008-4-1 20:12 南京路5号 2008-4-1 22:12 南京路9号 望高手赐教
补充:请回答前先把问题看清楚,“select timeA,Addr from Table1 order by timeA,Addr ”等就不要回了,根本不是这么回事,请看清楚后再回答,谢谢
答案:DECLARE @mint datetime
SELECT @mint = (SELECT min(TimeA) FROM 表)

SELECT TimeA, Addr INTO #a FROM 表
WHERE substring(Addr, 0, 3) = (SELECT          substring(Addr, 0, 3) FROM 表 WHERE TimeA = @mint) AND TimeA <> @mint

SELECT 'a' AS flag, TimeA, Addr FROM 表
WHERE TimeA = @mint
UNION
SELECT 'a' AS flag, * FROM #a
UNION 
(SELECT 'b' AS flag, TimeA, Addr FROM             表 
WHERE TimeA NOT IN (SELECT TimeA FROM #a) AND TimeA <> @mint)
ORDER BY     flag, TimeA

sql2005测试正确
----------------------------------------------------------
DECLARE @mint datetime
SELECT @mint = (SELECT min(TimeA) FROM 表)

SELECT TimeA, Addr INTO #a FROM 表
WHERE substring(Addr, 0, 3) = (SELECT          substring(Addr, 0, 3) FROM 表 WHERE TimeA = @mint) AND TimeA <> @mint

SELECT TimeA, Addr FROM(
SELECT 'a' AS flag, TimeA, Addr FROM 表
WHERE TimeA = @mint
UNION
SELECT 'a' AS flag, * FROM #a
UNION 
(SELECT 'b' AS flag, TimeA, Addr FROM             表 
WHERE TimeA NOT IN (SELECT TimeA FROM #a) AND TimeA <> @mint)) AS table
ORDER BY     flag, TimeA
其他:具体的我不清楚。但可以在查询语句后面用降序或者升序来显示。
select timeA,Addr from ** where ** order by timeA desc select timeA,Addr from Table1  order by timeA,Addr

select timeA,Addr from Table1  order by Addr,timeA 真想看看有谁能想出来。

上一个:关于column的含义 mssql
下一个:MSSQL查询一个字段,字段里面包含有" - "号的查询出来??

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,