【发布时间】:2014-12-25 18:10:50
【问题描述】:
我正在尝试创建一个返回两个单独查询的 T-SQL 查询(或者如果有更好的编写方式,我真的很想知道不使用 CASE 也可以!我很感兴趣要知道!)
查询的简化准代码版本
DECLARE @ALob VARCHAR = 'Item1' /*Or User can write in 'All'*/
SELECT
CASE WHEN @ALob='Item1' THEN
(Select e.EventID, e.EventName, Count(*) Rows
From tbl_Events e
Where BLob='Item1')
WHEN @ALob='All'THEN
(Select e.EventID, e.EventName, Count(*) Rows
From tbl_Events e) END
用户几乎可以在DECLARE 部分“ALL”或“Item1”中写入内容,根据他们放入的内容,它会显示第一个查询或第二个查询。
现在重要的是要注意第二个查询没有Where BLob='Item1',这很重要,因为“全部”选择中的 Lob 可以是任何东西 - NULL、Item1 等等 - 我想提取所有内容。
感谢所有帮助!
【问题讨论】:
标签: sql sql-server tsql subquery case