2016-12-02 28 views
2

我有以下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

回答

1

如果你想排除,你可以將其添加到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子句中。對困惑感到抱歉。 –

1

使用此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更新回答,道歉。 –

0

您可以簡單地將它添加到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