日期:2014-05-17 浏览次数:20725 次
SELECT TOP 1 * FROM ( SELECT * FROM TEST WHERE 日期 BETWEEN '2012-7-16'AND'2012-7-18' ) AS A ORDER BY 数量 DESC SELECT TOP 1 * FROM TEST ORDER BY 日期 DESC
SELECT TOP 1
*
FROM ( SELECT *
FROM TEST
WHERE 日期 BETWEEN '2012-7-16' AND '2012-7-18'
) AS A
ORDER BY 数量 DESC
IF @@ROWCOUNT = 0
BEGIN
SELECT TOP 1
*
FROM TEST
ORDER BY 日期 DESC
END
------解决方案--------------------
如果第一条语句有结果,则执行
就是两个select 都要呢 还是执行第一个 第二个不执行?
如果是继续执行那么参考2、3楼
如果是第二个不执行
if exists(SELECT 1 FROM TEST WHERE 日期 BETWEEN '2012-7-16'AND'2012-7-18') SELECT TOP 1 * FROM ( SELECT * FROM TEST WHERE 日期 BETWEEN '2012-7-16'AND'2012-7-18' ) AS A ORDER BY 数量 DESC else SELECT TOP 1 * FROM TEST ORDER BY 日期 DESC
------解决方案--------------------
if exists(SELECT TOP 1 *
FROM
(
SELECT *
FROM TEST
WHERE 日期 BETWEEN '2012-7-16'AND'2012-7-18'
) AS A
ORDER BY 数量 DESC)
SELECT TOP 1 *
FROM
(
SELECT *
FROM TEST
WHERE 日期 BETWEEN '2012-7-16'AND'2012-7-18'
) AS A
ORDER BY 数量 DESC
else
SELECT TOP 1 *
FROM TEST
ORDER BY 日期 DESC