2013-12-09 3 views
0

Я использую SQL Server 2008 R2 и имею два поля nvarchar, которые я хочу объединить, используя функцию RTRIM. Однако, когда я это делаю, все, что я получаю, это значения NULL.RTRIM (что-то) + '' + RTRIM (что-то) приводит к NULL

Ниже пример функции я использую:

RTRIM(gis.dbo.tbl.Name1) + ' ' + RTRIM(gis.dbo.tbl.Name2) 

Заранее спасибо!

+1

Я не отправляю как ответ на это было давно, так как я в последний раз работал с SQL, но я уверен, что вы хотите использовать CONCAT вместо оператора '+'. – Spidey

+0

Есть другие поля в представлении, где используются функция RTRIM и оператор +, и они показывают то, что я ожидаю. – mpboyle

+1

Вы могли бы предоставить исполняемый файл (SELECT RTRIM ('x') ... '). Вы должны иметь. Это позволило бы вам найти проблему самостоятельно, потому что один из входов NULL. – usr

ответ

1

Вы проверили, что ваши поля имеют значения? Если любой из них является нулевым, ваш код не будет работать. Вы можете попробовать, как это вместо того, чтобы поймать нулевые значения:

RTRIM(ISNULL(gis.dbo.tbl.Name1, '')) + ' ' + RTRIM(ISNULL(gis.dbo.tbl.Name2, '')) 
+0

Название1 почти всегда заполнено, Name2 малонаселено. Итак, если Name1 и Name2 не всегда заполнены, это не сработает? – mpboyle

+0

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

+0

Спасибо! Ваш код работает. Мне просто интересно, если моя работа не работает из-за функции RTRIM или из-за оператора +? ... что вызовет NULL. – mpboyle

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