Удалить пробел из вывода isql

Есть ли способ запретить isql добавлять интервалы до и после возвращаемых полей? Мне просто нужны значения из строки таблицы, разделенные ,. На данный момент, используя -b и -s ',', я получаю:

,some_column_entry         ,          3213,            another_column_entry,

однако я хочу:

,some_column_entry,3212,another_column_entry,

Перечитал все ключи, но ничего подходящего не нашел. Я хочу получить isql для вывода в этой форме, а не анализировать вывод.

ИЗМЕНИТЬ:

select top 1 rtrim(ltrim(some_column)) from table

возвращается

,abc             ,

isql, похоже, выводится на основе максимального размера символов, потому что, если я запускаю следующее:

select top 1 rtrim(ltrim(convert(varchar(3), some_column)) from table

Я получил:

,abc,

person bqui56    schedule 28.12.2012    source источник


Ответы (2)


Попробуй это

    Use RTRIM(LTRIM(ColumnName)) in your -q Query Select command.
person zaggler    schedule 28.12.2012

Контраст между

some_column_entry         ,

и

,            another_column_entry,

заставляет меня думать, что пробелы являются частью ваших полей, в отличие от используемых разделителей.

От man isql:

-dx Разделить столбцы символом x.

-x0xXX Разделить столбцы символом XX, где XX — шестнадцатеричное значение. Например -x0x09 будет использовать вкладку.

Если это не сработает, вы можете направить вывод isql через простой вариант использования sed:

isql ... | sed -e 's/\ //g'
person sampson-chen    schedule 28.12.2012
comment
-d похоже на синтаксическую ошибку. Мне пришлось бы использовать -s 'x', чтобы сделать x разделителем столбцов. - person bqui56; 28.12.2012