选择具有不同要求的2个值

时间:2018-11-29 17:45:40

标签: sql sql-server sql-server-2014

我想知道是否可以在单个select语句中选择两个具有不同条件的值。我知道我可以使用子查询来实现上述目的,只是想知道是否有更有效的方法来实现它。

请考虑下表:

const url = 'https://...';

fetch(url, {
  method: 'DELETE'
});

我希望选择用户总数以及本月加入的用户总数。我可以通过两个查询来做到这一点:

UserId | CreatedDate
1      | 2018-01-21
2      | 2018-02-21
3      | 2018-03-21
4      | 2018-11-21
5      | 2018-11-21

但是,这是否可以作为两个查询的单一选择?

编辑:为消除混乱,我正在寻找2列,而不是两行。

3 个答案:

答案 0 :(得分:3)

我相信这会满足您的需求

const express = require("express");
const app = express();

const courses = [
  { id: 1, name: "courses2" },
  { id: 2, name: "courses2" },
  { id: 3, name: "courses2" }
];

app.get("/", (req, res) => {
  res.send("Hello Word");
});

app.get("/api/courses", (req, res) => {
  req.send(courses);
});

答案 1 :(得分:2)

使用条件聚合:

SELECT COUNT(*),
       SUM(CASE WHEN MONTH(CreatedDate) = MONTH(GETDATE()) AND YEAR(CreatedDate) = YEAR(GETDATE()) THEN 1 ELSE 0 END)
FROM [Users];

注意:MONTH[CreatedDate]毫无意义,所以我用括号替换了方括号。

答案 2 :(得分:1)

这是一种方法

(这将为您提供两行,如果您希望两列,其他人已使用CASE显示了该解决方案)

localhost