2016-06-22 2 views
2

Я использую SQL Server 2008 с сопоставлением Latin1_General_CI_AS.Неизвестное количество пробелов в столбце таблицы

Может кто-нибудь помочь мне понять, как я могу устранить ошибку ниже?

SELECT A.*  
FROM table1 AS A  
INNER JOIN table2 AS B ON LTRIM(RTRIM('A.PPNO')) = LTRIM(RTRIM('B.PNO')) 
WHERE A.OMPID = '1001' 

Когда я запускаю этот код, я получаю эту ошибку:

Msg 102, Level 15, State 1, Line 1
Incorrect syntax near ' '.

Благодарности

+1

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

+2

Эта ошибка не является ошибкой из-за данных. Это связано с синтаксисом. Не имеет значения, что A.PNO и B.PNO имеют пробелы в качестве значений, они все равно должны работать. Как вы выполняете этот запрос. Если это анализатор запросов, вы ошибочно запускаете и другие запросы? – Ash

+0

@GordonLinoff: Извините, я редактировал вопрос. пожалуйста, помогите –

ответ

0

Попробуйте это:

SELECT A.* FROM table1 AS A 
INNER JOIN table2 AS B ON LTRIM(RTRIM(A.PPNO))= LTRIM(RTRIM(B.PNO))WHERE A.OMPID = '1001' 
+0

Спасибо, что работает для меня. –

+0

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

+0

его ничего не связанного с пространством в столбце, так как вы использовали имена столбцов в кавычках, которые не требуются. –

0

ошибка показывает, что существует проблема в строке 1 . Похоже, что у вас может возникнуть проблема с полем в таблице A, поскольку вы используете SELECT *.

Правильно объявите свои поля и убедитесь, что вы поместите их на отдельные строки, что-то вроде этого;

SELECT 
A.Field1 
,A.Field2 
,A.Field3 
,A.Field4 
FROM table1 AS A 
INNER JOIN table2 AS B 
    ON LTRIM(RTRIM(A.PPNO)) = LTRIM(RTRIM(B.PNO)) 
WHERE A.OMPID = '1001' 

Затем запустите его снова. Ошибка должна сообщить вам, с каким полем у вас возникла проблема. Возможно, имя поля имеет что-то не так. Вот почему мы не используем SELECT *.

+0

* Синтаксис * Ошибки никогда не возникают на основе * данных *, так как для доступа к данным код должен иметь * скомпилированный *, который он не будет делать, если есть синтаксическая ошибка. –

+0

Уверен, но не существует синтаксических проблем с кодом OP, отличным от того, что уже было предложено. Я пытался убедиться, что нет ничего странного в именах полей, которые могут вызвать проблему. –

+0

'Некорректный синтаксис рядом с '' .' очень похож на проблему синтаксиса. –

Смежные вопросы