2013-05-21 6 views
-1

В SQL Server то, что я ищу, представляет собой объединение двух полей вместе. Так, к примеру, у меня есть этот макет:Показывать только символ, если ISNULL имеет действительную запись

Col1   Col2 
Building A Room 101 
Building B Room 2A 
Building C Room 301 
Building D 
Building E Room 200 

И я хочу, чтобы объединить их, как:

Building A-Room 101 
Building B-Room 2A 
Building C-Room 301 

Что происходит, когда дело доходит до Building D это я получаю:

Building D-

Это ужасно. Я думал, что могу сделать ISNULL([Col1] + '-', ''), но это всегда будет показывать символ -. Есть ли способ добавить значение -, если [Col2] имеет значение без использования инструкции CASE? Или я об этом поменяю неправильно?

ответ

-1

Я думаю, что ваш тест необходимо оценить Col2, а не Col1. Попробуйте

SELECT [Col1] + ISNULL('-' + [Col2], '') 
+0

Конечно, это никогда не будет 'null' потому что вы кладете в' -' характер –

+0

Пробовали ли вы его? Когда я тестировал, он работал, как ожидалось. Null, связанный с ненулевым, должен дать вам null. Вам может потребоваться проверить настройки ANSI NULL. – bobs

+0

Я попробовал, и я получил '-' –

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