1. 程式人生 > 其它 >sql資料庫查詢結果欄位包含換行符導致複製到Excel發生錯位問題的解決

sql資料庫查詢結果欄位包含換行符導致複製到Excel發生錯位問題的解決

問題描述:
在工作過程中,有時會遇到這樣的問題,寫好sql查詢語句在資料庫中查詢資料,看到行數(比如說是1000行),但是把查詢結果複製到Excel裡面,卻發生了行列錯位問題,而導致Excel裡面的行數是超過1000行的,造成資料行數的不一致。

問題重現:
欄位值包含char(10)換行符,複製欄位值到Excel.

根源:
某些行列對應單元格包含了換行符,導致複製到Excel裡面發生錯位。

解決方案:
方案1(推薦):把有問題的欄位值,用英文雙引號括起來,這樣就能把欄位值裡面的換行符限制在正確的Excel單元格里面。
方案2:通過指令碼把對應的欄位值換行符去掉。

create table #t
(
Name nvarchar(50),


Remark nvarchar(50)
)

–問題重現條件:單元格里麵包含換行符
insert into #t
values (‘A1’ + char(10) + ‘B1’, ‘行1’), (‘A2B2’, ‘行2’)

–問題重現結果:把sql查詢結果複製到Excel會錯位
select Name, Remark
from #t

–解決方案1:可以直接在欄位加雙引號處理,複製到Excel就不會錯位,也不會顯示多餘的雙引號。相當於把欄位裡的換行限制在單元格內
select ‘"’+ Name + ‘"’ as Name, Remark
from #t

–解決方案2:可以把換行符去掉
select replace(replace(Name, char(13), ‘’), char(10), ‘’) as Name, Remark


from #t

drop table #t