删除数据OUT输出的最后3个字符

问题描述:

我有以下SQL查询:删除数据OUT输出的最后3个字符

SELECT Sys.Name0, Sys.User_Name0, SF.FilePath, SF.Filename, Count(SF.FileName) AS FileCount, Sum(SF.FileSize/1024/1024) AS 'Used Space' 
FROM v_R_System Sys 
INNER JOIN v_GS_SoftwareFile SF ON Sys.ResourceID = SF.ResourceID 
WHERE SF.FilePath LIKE '%' + 'Users' + '%' + '%documents%' 
    AND SF.FileSize > 0 
GROUP BY Sys.Name0, Sys.User_Name0, SF.Filename, SF.FilePath 
HAVING Count(SF.FileName) > 0 
ORDER BY Sys.Name0 DESC 

的问题是,我得到了太多的信息。例如,我想排除记录并不计算任何FILENAME就像.exe,.dll,.ico的地方。

+4

你使用MySQL或MS SQL Server? – jarlh

+1

也许通过使用where子句?或者如果你想让他们不被计算但仍然返回,你可以使用条件聚合。 –

+0

请阅读[this](http://spaghettidba.com/2015/04/24/how-to-post-a-t-sql-question-on-a-public-forum/)了解改进问题的一些提示。 – HABO

如果你想排除,你可以将其添加到where子句中的记录:

AND RIGHT(FileName,4) NOT IN('.exe', '.dll', '.ico', 'etc.') 

OR

AND Filename Not Like '%.exe' AND Filename Not Like '%.dll' AND Filename Not Like '%.ico' AND etc.... 
+0

好吧,我会在哪个位置放两个语句,因为我不知道如何放置额外的'where'语句 – dwhite

+0

@dwhite每个select语句只能有一个WHERE子句,FYI –

+0

@dwhite我的意思是你应该添加这些陈述到你现有的where子句中。对困惑感到抱歉。 –

使用此Where子句(假设SQL Server)的

Where SF.FilePath like '%'+'Users'+'%' +'%documents%' 
and SF.FileSize > 0 
And FileName Not Like '%.exe' 
And FileName Not Like '%.dll' 
And FileName Not Like '%.ico' 

这应该让你走....

+0

这并没有工作,仍然报告ini,dll但没有删除exe – dwhite

+0

@dwhite更新回答,道歉。 –

您可以简单地将它添加到where子句中作为额外条件。为排除文件名:

AND RIGHT(FileName,4) NOT IN('.exe', '.dll', '.ico', 'etc.') 

排除大于1mb的文件大小。

AND SF.FileSize > 1 

声明全文:

SELECT 
    Sys.Name0, 
    Sys.User_Name0, 
    SF.FilePath, 
    SF.Filename, 
    Count(SF.FileName) AS FileCount, 
    Sum(SF.FileSize/1024/1024) AS 'Used Space' 
FROM 
    v_R_System Sys 
    INNER JOIN v_GS_SoftwareFile SF ON Sys.ResourceID = SF.ResourceID 
WHERE 
    SF.FilePath LIKE '%' + 'Users' + '%' + '%documents%' 
    AND SF.FileSize > 1 
    AND RIGHT(FileName,4) NOT IN('.exe', '.dll', '.ico', 'etc.') 
GROUP BY Sys.Name0, Sys.User_Name0, SF.Filename, SF.FilePath 
HAVING Count(SF.FileName) > 0 
ORDER BY Sys.Name0 DESC 
+0

好吧,这很好,但是,我有另一个问题,我想出口到Excel CSV,但它超过200万线,有没有办法一次只出口100万线? – dwhite