MS Access SQL联合查询按问题排序

时间:2019-01-18 12:34:31

标签: sql ms-access

我有一个表中的日期列表(数据类型=文本),我想使用查询作为表单过滤器的一部分从组合框中以升序下拉。我还想在列表中添加一个“全部”,以便用户可以使用组合框重置过滤器。

我可以按顺序获取日期,也可以合并“全部”选项,但不能同时使用两者。有人可以帮忙吗?

这将按顺序获取日期:

SELECT TESTTABLE.DateTest
FROM TESTTABLE
ORDER BY CDate(TESTTABLE.DateTest);

这会进行并集,但是日期的排列顺序会错误:

SELECT TESTTABLE.DateTest
FROM TESTTABLE
UNION SELECT "(All)" AS BOGUS FROM TESTTABLE

我很想将两个选项组合成一个查询,以将“全部”放在查询的返回值列表的顶部,并按日期排列

2 个答案:

答案 0 :(得分:1)

使用格式功能对存储为文本的日期进行排序。 (All)将在顶部,因为特殊字符的值最低,然后是字母

Select * from (
SELECT DISTINCT TESTTABLE.DateTest
FROM TESTTABLE
UNION SELECT "(All)" AS BOGUS FROM TESTTABLE)
order by Format(DateTest,'yyyy-mm-dd') asc

答案 1 :(得分:0)

您可以在下面使用dummay列尝试订购

select * from
(
SELECT TESTTABLE.DateTest,2 as ord
FROM TESTTABLE
UNION SELECT "(All)" AS BOGUS,1 FROM TESTTABLE
)A order by ord,CDate(DateTest)