2015-03-12 2 views
2

У меня есть старая база данных SQL Server 2000, из которой я читаю данные. Моя проблема заключается в том, что каждый запрос с использованием String возвращает значение, размер которого заполняется пробелами.Как удалить пробелы из столбцов в SQL Server 2000?

Например: предположим, что у нас есть столбец NAME CHAR(20). Все запросы вернутся:

"John     " 

вместо "John".

Есть ли в моей базе данных конфигурация или параметр, который вызывает это, или что-нибудь вообще, что можно изменить, чтобы избежать этого? Спасибо.

EDIT:

Я хотел бы уточнить, что я читаю мою БД с помощью JPA Хранилища. Я не хочу физически удалять пробелы из столбцов или обрезать значения вручную с помощью RTRIM/LTRIM/REPLACE. Я просто пытаюсь получить столбец без конечных пробелов, не добавляя лишнего напряжения в запрос или обрезая поля программно.

+0

Используйте 'VARCHAR (20)' вместо 'CHAR (20)' - 'голец (п)' является * всегда * заполняется до определенной длины пробелами (по определению) –

+0

Вы считали точку зрения или вычисленный столбец? –

+0

Да, у меня есть. На самом деле, я сейчас читаю из просмотров. Проблема в том, что мне не разрешено изменять их каким-либо образом, например, для преобразования char в varchar. Я должен прочитать данные как есть. Я просто задавался вопросом, есть ли способ вернуть значение без каких-либо пробелов. Спасибо в любом случае вам обоим @marc_s – Razorblade

ответ

6

вы можете использовать REPLACE/RTRIM/LTRIM

select RTRIM(LTRIM(column_name)) from table_name 

или

select replace(column_name, ' ', '') from table_name 
+0

Я только что добавил дополнительную информацию по этому вопросу. Я хотел избежать обрезки столбца как в запросе, так и в программе, которая обрабатывает значение String. Спасибо, в любом случае! – Razorblade