在sql中使用Not Like失败

时间:2012-08-07 07:24:53

标签: sql sql-server sql-server-2005

我有这个查询。

SELECT
Distinct
   CASE CHARINDEX( '?', SessionURL)
       WHEN 0 THEN SessionURL 
       ELSE LEFT(SessionURL, CHARINDEX( '?', SessionURL) - 1) END AS VisitPage , count(*) as [VisitTime] 
FROM VistedURL

它给出了以下结果。

         VisitPage               VisitTime
  a/default.aspx                    99
  a/home.aspx                       15
  a/admin/dashboard.aspx            05
  a/contactus.aspx                  54
  a/admin/login.aspx                10

我想在上面的query.means中使用Not Like

WHERE SessionURL NOT LIKE '%admin%'

并删除包含admin的上述结果表的第3和第5个数据。但无法在上述查询中使用Not Like。谢谢。

2 个答案:

答案 0 :(得分:2)

SELECT 
   CASE CHARINDEX( '?', SessionURL)        
      WHEN 0 THEN SessionURL         
   ELSE LEFT(SessionURL, CHARINDEX( '?', SessionURL) - 1) END AS VisitPage , count(1) as [VisitTime]  
  FROM VistedURL
  GROUP BY SessionURL WHERE SessionURL NOT LIKE '%admin%'

请尝试以上查询。 同样count(1)优于count(*)

答案 1 :(得分:1)

试试这个

 SELECT CASE WHEN CHARINDEX( '?', SessionURL) = 0 THEN SessionURL         
   ELSE LEFT(SessionURL, CHARINDEX( '?', SessionURL) - 1) END AS VisitPage, 
   count(1) as [VisitTime]  
   FROM VistedURL
   WHERE SessionURL NOT LIKE '%admin%'
   GROUP BY SessionURL