2015-08-24 209 views
0

有条件地显示值我有一个非常简单的查询,但我需要它,这样,如果Conditional少于两则Title应显示为全部大写。以大写字母

SELECT DISTINCT Title, COUNT(Title) AS NumberOfTitles 
FROM Table 
WHERE Conditional < 3 
GROUP BY Title 
ORDER BY Title 

我试过CASE等等,但似乎可以得到它的工作

我还需要标题设置为“主”如果有条件= 1

回答

2
SELECT 
case when conditional = 1 then 'MAIN' 
when conditional <> 1 and conditional < 2 then UPPER(Title) 
else Title end as Title 
, COUNT(Title) AS NumberOfTitles 
FROM Table 
GROUP BY case when conditional = 1 then 'MAIN' 
     when conditional <> 1 and conditional < 2 then UPPER(Title) 
     else Title end 
ORDER BY case when conditional = 1 then 'MAIN' 
     when conditional <> 1 and conditional < 2 then UPPER(Title) 
     else Title end 

你可以试试THI与case声明。

+0

打我吧,这就是我会做太 –

+0

完美谢谢 – HolyUnicow

+0

我如果条件为1,还需要将标题更改为“主”,我可以使用相同的情况还是需要辅助? – HolyUnicow

1

我想包在一个公共表表达式的逻辑,以避免在group byorder by条款重蹈覆辙:

WITH cte AS (
    SELECT 
     CASE WHEN conditional < 2 THEN UPPER(Title) 
      ELSE Title 
     END AS Title 
    FROM Table 
) 

SELECT Title, COUNT(Title) AS NumberOfTitles 
FROM cte 
GROUP BY Title 
ORDER BY Title;