在sql中使用两个日期之间的数据获取订单
我有如下表格在sql中使用两个日期之间的数据获取订单,sql,sql-order-by,Sql,Sql Order By,我有如下表格 id名称类别id状态为删除开始日期结束日期显示顺序 SELECT * FROM product WHERE isdelete = 0 AND status = 1 AND name LIKE '%%' AND categoryid = 4 ORDER BY showorder ASC 现在我想像这样绑定数据 1) 开始日期和结束日期介于今天日期之间的数据应位于顶部 2) 其余数据将使用showorder按字段排序 因此,我如何使用一
id名称类别id状态为删除开始日期结束日期显示顺序
SELECT *
FROM product
WHERE isdelete = 0
AND status = 1
AND name LIKE '%%'
AND categoryid = 4
ORDER
BY showorder ASC
现在我想像这样绑定数据
1) 开始日期和结束日期介于今天日期之间的数据应位于顶部
2) 其余数据将使用showorder按字段排序
因此,我如何使用一个查询来实现这一点,因为以后我还必须实现分页,所以双查询不合适您可以在
ORDER BY
中有多个键,包括一个表达式:
SELECT p.*
FROM product p
WHERE p.isdelete = '0' AND p.status = 1 AND
p.name LIKE '%%' AND categoryid = '4'
ORDER BY (CASE WHEN getdate() BETWEEN start_date AND end_date THEN 1 ELSE 2 END),
showorder ASC
您可以按的顺序拥有多个键,包括一个表达式:
SELECT p.*
FROM product p
WHERE p.isdelete = '0' AND p.status = 1 AND
p.name LIKE '%%' AND categoryid = '4'
ORDER BY (CASE WHEN getdate() BETWEEN start_date AND end_date THEN 1 ELSE 2 END),
showorder ASC
订购后,我们可以使用多个字段:
SELECT * FROM product WHERE isdelete = '0' AND status = 1 AND name LIKE '%%'
AND categoryid = '4' ORDER BY start_date DESC,end_date DESC,showorder ASC
订购后,我们可以使用多个字段:
SELECT * FROM product WHERE isdelete = '0' AND status = 1 AND name LIKE '%%'
AND categoryid = '4' ORDER BY start_date DESC,end_date DESC,showorder ASC
您不能使用联合来编写两个查询并将结果合并为一个查询吗?您不能使用联合来编写两个查询并将结果合并为一个查询吗?