[MS SQL Server] Сравнение и NULL
От: Аноним  
Дата: 15.08.10 21:09
Оценка:
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'

Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.

Нюансы:
1. Мне крайне важно не производить запись, если значение не поменялось.
2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.
Re: [MS SQL Server] Сравнение и NULL
От: wildwind Россия  
Дата: 15.08.10 21:17
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.


Документацию читать просто лень, или с английским настолько не дружишь?
Re[2]: [MS SQL Server] Сравнение и NULL
От: Аноним  
Дата: 15.08.10 21:29
Оценка: +1 :)
Здравствуйте, wildwind, Вы писали:

А>>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.

W>Документацию читать просто лень, или с английским настолько не дружишь?

Ни то, ни другое. ISNULL (который не является правильным ответом) вытеснил из головы IS NULL (который решает задачу). Но добрые люди напомнили.
Re: [MS SQL Server] Сравнение и NULL
От: SLGLADKOV Россия  
Дата: 16.08.10 00:51
Оценка:
Здравствуйте, Аноним, Вы писали:

А>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'

А>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.

А>Нюансы:

А>1. Мне крайне важно не производить запись, если значение не поменялось.
А>2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.

Попробуй вот так:
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'blablah') <> 'blablah'
[ms sql server] сравнение и null
Re[2]: [MS SQL Server] Сравнение и NULL
От: Аноним  
Дата: 16.08.10 04:47
Оценка:
Здравствуйте, SLGLADKOV, Вы писали:

SLG>Здравствуйте, Аноним, Вы писали:


А>>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'

А>>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.

А>>Нюансы:

А>>1. Мне крайне важно не производить запись, если значение не поменялось.
А>>2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.

SLG>Попробуй вот так:

SLG>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'blablah') <> 'blablah'


Это первое, что приходит на ум, и оно не соответствует условиям задачи. Однако, кроме isnull есть is null, и это то, что надо.
Re[2]: [MS SQL Server] Сравнение и NULL
От: AntoxaM  
Дата: 16.08.10 08:24
Оценка:
Здравствуйте, SLGLADKOV, Вы писали:

SLG>Здравствуйте, Аноним, Вы писали:


А>>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND nvarchar1 <> 'blablah'

А>>Вот такой запрос не работает, когда nvarchar1 равен NULL. Подскажите, как переписать, чтоб заработал.

А>>Нюансы:

А>>1. Мне крайне важно не производить запись, если значение не поменялось.
А>>2. Тип поля неизвестен. Это может быть nvarchar, ntext, целое число, дробное. Выделенное жирным значение генерируется с учетом типа.

SLG>Попробуй вот так:

SLG>
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'blablah') <> 'blablah'

думаю, имелось ввиду так:
UPDATE MyTable SET nvarchar1 = 'blahblah' WHERE Id = '096fe792-7313-416f-b3c8-327f46be73b6' AND ISNULL(nvarchar1,'') <> 'blablah'
Re[2]: [MS SQL Server] Сравнение и NULL
От: _d_m_  
Дата: 19.08.10 07:01
Оценка:
Здравствуйте, wildwind, Вы писали:

W>Документацию читать просто лень, или с английским настолько не дружишь?


Мастодонт
Дока уже давно вся на русском.
Re[3]: [MS SQL Server] Сравнение и NULL
От: _d_m_  
Дата: 19.08.10 07:07
Оценка:
Здравствуйте, _d_m_, Вы писали:

___>Здравствуйте, wildwind, Вы писали:


W>>Документацию читать просто лень, или с английским настолько не дружишь?


___>Мастодонт

___>Дока уже давно вся на русском.

Скажу больше: есть даже русские редакции MS SQL Server, начиная еще с 2005-ой версии.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.