2017-06-16 43 views
0

當我將查詢導出到excel .CSV時,我在填充的行後面出現空行。從SQL導出到excel的空白行

如何刪除我的查詢中的空行,這樣就不會導出爲ex​​cel exmaple of outcome

SELECT 
    ID, 
    CASE 
     WHEN PATINDEX('%[0-9]%', q.outcome) <> 0 
     THEN SUBSTRING(q.outcome, 1, PATINDEX('%[0-9]%', q.outcome) - 1) 
     ELSE q.outcome 
    END outcome 
FROM (
     select 
      ID, 
      substring (Eventlog, CHARINDEX('to - usr', EventLog) + 16, LEN(Eventlog)) AS outcome 
     from Summary 
    )q 
+0

您的意思是SQL查詢執行的結果導出到Excel,你可以刪除所有的回車和換行字符?如果是的話,你如何導出?從SSMS內複製粘貼? – DhruvJoshi

+0

通過不選擇它們? F.E.添加一個where子句:'where len(rtrim(q.outcome))> 0' – LukStorms

+0

查看示例結果,這些空行甚至沒有id。所以它可能甚至不涉及SQL,而是將結果集導出到文件的方式。或者該EventLog字段中是否還有新行? – LukStorms

回答

0

問題發生的原因是結果結尾處有換行符。

所以從它

... 
ID, 
Replace(Replace(substring(Eventlog, CHARINDEX('to - usr', EventLog) + 16, LEN(Eventlog)),CHAR(10),''),CHAR(13),'') AS outcome 
... 
0

您還沒有共享您的查詢,以便不知道你做了什麼數據的輸出。請嘗試以下sql:

SELECT ID,outcome FROM (
SELECT 
    ID, 
    CASE 
     WHEN PATINDEX('%[0-9]%', q.outcome) <> 0 
     THEN SUBSTRING(q.outcome, 1, PATINDEX('%[0-9]%', q.incoming) - 1) 
     ELSE q.outcome 
    END outcome, 
    ROW_NUMBER OVER() AS SNO 
FROM (
     select 
      ID, 
      substring (Eventlog, CHARINDEX('to - usr', EventLog) + 16, LEN(Eventlog)) AS outcome 
     from Summary 
    )q 
) A 
WHERE mod(A.SNO,2) = 1 
+0

不幸的是,這並沒有幫助。我上傳了一個結果的例子 – user8171127