在sql server中显示多个变量?
我有两个问题:在sql server中显示多个变量?,sql,sql-server-2008,Sql,Sql Server 2008,我有两个问题: Select count(*) as countOne where field = '1' Select count(*) as countTwo where field = '2' 在结果查看器中执行这些查询后,我希望看到的内容: countOne | countTwo 23 | 123 如何通过只运行一个查询来获得两个查询的结果?最简单的方法是将每个查询作为子选择运行,例如 SELECT ( Select count(*) where field
Select count(*) as countOne where field = '1'
Select count(*) as countTwo where field = '2'
在结果查看器中执行这些查询后,我希望看到的内容:
countOne | countTwo
23 | 123
如何通过只运行一个查询来获得两个查询的结果?最简单的方法是将每个查询作为子选择运行,例如
SELECT
(
Select count(*) where field = '1' as countOne,
Select count(*) where field = '2' as countTwo
)
但这未必是最好的办法
另一种方法是按字段分组,然后执行PIVOT操作,将每个组作为一个单独的列进行选择。最简单的方法是将每个组作为一个子选择运行
SELECT
(
Select count(*) where field = '1' as countOne,
Select count(*) where field = '2' as countTwo
)
SELECT COUNT(CASE WHEN field = '1' THEN 1 END) AS countOne,
COUNT(CASE WHEN field = '2' THEN 1 END) AS countTwo
FROM YourTable
WHERE field IN ( '1', '2' )
但这未必是最好的办法
另一种方法是按字段分组,然后执行PIVOT以将每个组作为一个单独的列进行选择。这两个选择是否针对同一个表?这两个选择是否针对同一个表?这称为子查询?只是效率很低吗?如果是这样的话,还有什么更好的方法呢?这将是两个单独选择的数据密集型方法。我在答案中指定了另一个选项PIVOT,但必须查找语法(我不经常这样做),这称为子查询?只是效率很低吗?如果是这样的话,还有什么更好的方法呢?这将是两个单独选择的数据密集型方法。我在答案中指定了另一个选项PIVOT,但必须查找语法(我不经常这样做)
SELECT COUNT(CASE WHEN field = '1' THEN 1 END) AS countOne,
COUNT(CASE WHEN field = '2' THEN 1 END) AS countTwo
FROM YourTable
WHERE field IN ( '1', '2' )