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

Откуда:
Сообщений: 9
Здравствуйте!

По результатам запроса формируется таблица, в которой в разных столбцах иногда встречаются значения null либо пустая строка (нет значения)

Как корректно выполнить автозамену всех таких значений на произвольный текстовый шаблон?
6 июн 13, 10:10    [14398164]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Что такое "автозамена" ? Это когда сервер сам без вашего участия меняет текст запроса, добавляя туда проверку значения поля на null ?
6 июн 13, 10:12    [14398174]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Megabyte
Member

Откуда: ближайшее заМКАДье
Сообщений: 4997
Oriaraniar
Здравствуйте!

По результатам запроса формируется таблица, в которой в разных столбцах иногда встречаются значения null либо пустая строка (нет значения)

Как корректно выполнить автозамену всех таких значений на произвольный текстовый шаблон?

Включаю телепатор.
Если в поле может присутствовать NULL, а вы хотите заменить его каким-то значением, то используйте ISNULL.
Для замены пустой строки используйте CASE.
6 июн 13, 10:18    [14398228]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Oriaraniar
Member

Откуда:
Сообщений: 9
Не.

В конце запроса написать, чтоб в полученной таблице заменить все подобные ячейки
6 июн 13, 10:18    [14398233]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Oriaraniar
Member

Откуда:
Сообщений: 9
Для локального столбца я знаю, как.

Интересует, можно ли сделать это не перечисляя столбцы поимённо и без курсоров.
6 июн 13, 10:20    [14398245]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Oriaraniar
В конце запроса написать

Писать придется для каждого выбираемого поля
6 июн 13, 10:21    [14398249]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Oriaraniar
Интересует, можно ли сделать это не перечисляя столбцы поимённо и без курсоров.

Нельзя
6 июн 13, 10:21    [14398254]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Oriaraniar
Member

Откуда:
Сообщений: 9
Печально...

Благодарю.
6 июн 13, 10:22    [14398262]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
Glory
Member

Откуда:
Сообщений: 104751
Oriaraniar
Печально...

Печально, что люди не понимают того, что есть представления, например.
Все им хочется, чтобы сервер транслировал их желания прямо из мозга в код.
6 июн 13, 10:35    [14398365]     Ответить | Цитировать Сообщить модератору
 Re: Автозамена значений в таблице  [new]
super-code
Member

Откуда:
Сообщений: 244
Да вообщем-то можно, но не нужно так делать! Вот пример:

declare @tab_name nvarchar(200) = N'pows.contact_password'
declare @my_new_value_is_null nvarchar(200) = 'new'


select
	N'update ['+@tab_name+']
	  set ['+name+ '] = N'''+@my_new_value_is_null+'''
	  where ['+name+'] is null'
from sys.columns where object_id = (select object_id(@tab_name))

Далее по этому запросу пройтись курсором и выполнить динамически sql.
7 июн 13, 10:21    [14404240]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить