2017-06-16 44 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