作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 SQL 查询 (MSSQLSERVER),我使用子选择将列添加到结果集中:
SELECT P.name,
(select count(*) from cars C where C.type = 'sports') AS sportscars,
(select count(*) from cars C where C.type = 'family') AS familycars,
(select count(*) from cars C where C.type = 'business') AS businesscars
FROM people P
WHERE P.id = 1;
最佳答案
在你的情况下,有 8
列布局可能,要做到这一点,你需要 8
单独的查询(或动态构建查询)。
无法在单个查询中更改结果集布局。
相反,您可以按如下方式设计查询:
SELECT P.name,
CASE WHEN wantssport = 1 THEN (select count(*) from cars C where C.type = 'sports') ELSE NULL END AS sportscars,
CASE WHEN wantsfamily = 1 THEN (select count(*) from cars C where C.type = 'family') ELSE NULL END AS familycars,
CASE WHEN wantsbusiness = 1 THEN (select count(*) from cars C where C.type = 'business') ELSE NULL END AS businesscars
FROM people P
WHERE P.id = 1
NULL
如果一个人不想要它,在适当的列中,并解析这些
NULL
在客户端。
relations
回答查询。 .
NULL
这是
SQL
的方式来表明关系的成员未定义、适用或有意义。
关于SQL:选择性子查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1012237/
我是一名优秀的程序员,十分优秀!