Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Соединение двух полей  [new]
orzON
Member

Откуда:
Сообщений: 136
Нужно соединить 2 поля: fam и "name". Если второе поле NULL, то результирующее поле тоже получается NULL. Как это исправить?
INSERT INTO [inspector].[dbo].[T_insp]
           ([kod_insp] ,[fio_insp] ,[dol_insp])
SELECT cast (kod_insp as nvarchar(10)), 
cast (fam as nvarchar(60))+' '+ cast (("name") as nvarchar(60)),
cast (dolg as nvarchar(60))
FROM [proba].[dbo].[INSPECT]
3 ноя 09, 13:45    [7876707]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух полей  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31204
orzON
Нужно соединить 2 поля: fam и "name". Если второе поле NULL, то результирующее поле тоже получается NULL. Как это исправить?
ISNULL
3 ноя 09, 13:49    [7876736]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух полей  [new]
iap
Member

Откуда: Москва
Сообщений: 46975
ISNULL([name],N'')
3 ноя 09, 13:49    [7876737]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух полей  [new]
Yadrinez
Member

Откуда: :адуктО
Сообщений: 360
INSERT INTO [inspector].[dbo].[T_insp]
           ([kod_insp] ,[fio_insp] ,[dol_insp])
SELECT cast (kod_insp as nvarchar(10)), 
COALESCE(cast (fam as nvarchar(60)),'')+' '+ COALESCE(cast (("name") as nvarchar(60)),''),
cast (dolg as nvarchar(60))
FROM [proba].[dbo].[INSPECT]
3 ноя 09, 13:50    [7876750]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух полей  [new]
OrlandoRost
Member

Откуда:
Сообщений: 95
Конкатенация стоки с NULL значением есть NULL (настройки позволяют это дело регулировать, наверное...). В вашем случае необходимо потенциальных виновников проверять на NULL, функцией COALESCE, например, и преобразовывать в необходимое значение.
Пример использования: COALESCE(my_field, '') - проверит значение my_field на NULL, и в случае положительного результата, подставит вместо пустую строку.
3 ноя 09, 13:52    [7876761]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух полей  [new]
Дедушка
Member

Откуда: Город трёх революций
Сообщений: 5111
orzON
Нужно соединить 2 поля: fam и "name". Если второе поле NULL, то результирующее поле тоже получается NULL. Как это исправить?
INSERT INTO [inspector].[dbo].[T_insp]
           ([kod_insp] ,[fio_insp] ,[dol_insp])
SELECT cast (kod_insp as nvarchar(10)), 
cast (fam as nvarchar(60))+' '+ cast (("name") as nvarchar(60)),
cast (dolg as nvarchar(60))
FROM [proba].[dbo].[INSPECT]

- определить дефолтное значение для поля name в таблице T_insp (например 'Н\Д')
- уже существующие записи с name is null проапдейтить
- вопрос не программирования, а проектирования
3 ноя 09, 13:58    [7876809]     Ответить | Цитировать Сообщить модератору
 Re: Соединение двух полей  [new]
orzON
Member

Откуда:
Сообщений: 136
всем спасибо за ответы!
3 ноя 09, 14:06    [7876857]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить