Очень странная проблема.

Я разрабатываю запросы в T-SQL и часто копирую вывод, который появляется на вкладке "результаты", в Excel, чтобы проанализировать / проанализировать результаты / проверить ошибки и т.д.

Недавно я заметил, что в ряде случаев, когда я выбираю выходные данные на вкладке "Результаты" T-SQL, щелкаю правой кнопкой мыши, копирую, а затем нажимаю правой кнопкой мыши и вставляю их в Excel, выходные данные не вставьте правильно. Например, сегодня я вставляю вывод SQL в электронную таблицу Excel, а две ячейки в столбце "A" в Excel не содержат значения. Но когда я смотрю на скопированные данные в Excel, в столбце A. определенно есть значение. Существует ряд других подобных ошибок копирования.

Кто-нибудь еще сталкивался с этим? Я никогда не слышал об этом раньше. Но это происходило несколько раз в течение нескольких месяцев.

Это не тривиальная проблема, поскольку последствия этого, очевидно, могут быть весьма значительными.

1 ответ1

0

Пара вещей может вызвать это.
1) Непечатные символы в ваших данных. Чтобы убедиться в этом, перенаправьте вывод в текстовый файл и откройте этот файл в текстовом редакторе, который показывает шестнадцатеричные коды. Удаление непечатных символов в SQL рассматривается во многих вопросах StackExchange. Пример вопроса и решения.


2) Excel запоминает прошлое поведение или форматирование и применяет его к текущим данным. Чтобы это исправить, закройте все экземпляры Excel и начните заново.

РЕДАКТИРОВАТЬ на основе комментария:
Чтобы удалить лишние CRLF, попробуйте что-то вроде этого:

Declare @CR as Varchar
Declare @LF as Varchar
Declare @CRLF as Varchar(2) 
Set @CR = CONVERT(VARCHAR, CONVERT(VARBINARY, '0x0D', 1))
Set @LF = CONVERT(VARCHAR, CONVERT(VARBINARY, '0x0A', 1))
Set @CRLF = @CR + @LF

Select Replace(Columnname, @CRLF, '')

Это ограничено только CRLF. Если ваши данные содержат больше шестнадцатеричных символов, вам потребуется нечто более надежное.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .