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

Откуда:
Сообщений: 7
Есть таблица со следующими столбцами - Type , Data , ID и т.д. .
Мне нужно удалить все строки, у которых Type = 2 и Data is NULL
Вопрос, че я делаю не так?

delete FROM [base].[dbo].[Credential]
where Type='2' AND Data IS NULL

запрос проходит, но обработано 0 строк.
Тип Data - image .
Т.е. я должен удалить строки по заданным двум параметрам.

Будьте любезны, направьте в нужное русло.
Картинка с другого сайта.

К сообщению приложен файл. Размер - 8Kb
5 май 16, 16:40    [19139232]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Glory
Member

Откуда:
Сообщений: 104760
fireblood
запрос проходит, но обработано 0 строк.

На вашем рисунке нет ни одной записи, соответствующей двум условиям запроса Type='2' AND Data IS NULL
5 май 16, 16:42    [19139239]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
fireblood
Member

Откуда:
Сообщений: 7
Glory
fireblood
запрос проходит, но обработано 0 строк.

На вашем рисунке нет ни одной записи, соответствующей двум условиям запроса Type='2' AND Data IS NULL


Даже если написать Data='NULL'
ТО скуль вывалит с ошибкой, мол нельзя тип image сравнивать с чем-либо
5 май 16, 16:43    [19139246]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Pavel1211
Member

Откуда: Екатеринбург
Сообщений: 205
fireblood,

а разве есть записи, подходящие по ваш фильтр?
5 май 16, 16:43    [19139247]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
DECLARE @Credential TABLE ([Type] INT, Data IMAGE)

INSERT INTO @Credential
VALUES (2, NULL), (2, '')

DELETE FROM @Credential
WHERE [Type] = 2
    AND Data IS NULL

SELECT * FROM @Credential

Складывается мнение, что таких записей у Вас нет. К слову IMAGE тип лучше не использовать, VARBINARY(MAX) более хорошая альтернатива.
5 май 16, 16:45    [19139263]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Glory
Member

Откуда:
Сообщений: 104760
fireblood
Даже если написать Data='NULL'
ТО скуль вывалит с ошибкой, мол нельзя тип image сравнивать с чем-либо

Вы ответы читаете ?
5 май 16, 16:46    [19139265]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
iap
Member

Откуда: Москва
Сообщений: 47051
fireblood
Glory
пропущено...

На вашем рисунке нет ни одной записи, соответствующей двум условиям запроса Type='2' AND Data IS NULL


Даже если написать Data='NULL'
ТО скуль вывалит с ошибкой, мол нельзя тип image сравнивать с чем-либо
Во-первых, забудьте навсегда условия типа Data = NULL
Во-вторых, может, надо удалить Type=2 ИЛИ Data IS NULL ?
5 май 16, 16:48    [19139275]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
fireblood
Member

Откуда:
Сообщений: 7
AlanDenton,

Спасибо, но этой действующая таблица, тип менять низя)
5 май 16, 16:51    [19139298]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
fireblood
Member

Откуда:
Сообщений: 7
iap,

В том то и беда что мне как раз нужна сортировка именно по этим двум полям))
5 май 16, 16:52    [19139300]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Glory
Member

Откуда:
Сообщений: 104760
fireblood
В том то и беда что мне как раз нужна сортировка именно по этим двум полям))

Главное беда в том, что в вашей таблице нет записей, которые вы собрались убирать
Вы легко можете это проверить запросом
5 май 16, 16:53    [19139306]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
fireblood, какая еще "сортировка"? Мы же удалять по условию вначале топика хотели
5 май 16, 16:53    [19139310]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
fireblood
Member

Откуда:
Сообщений: 7
Glory,

записать в нуловые значение какую нибудь инфу - это конечно же вариант, просто хотел узнать есть ли вариант сортировки по двум полям, одно из которых нуловое)
5 май 16, 16:54    [19139313]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
fireblood
Member

Откуда:
Сообщений: 7
AlanDenton
fireblood, какая еще "сортировка"? Мы же удалять по условию вначале топика хотели

Простите, опечатался. К концу дня мозг не оч работает
5 май 16, 16:54    [19139320]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Glory
Member

Откуда:
Сообщений: 104760
fireblood
записать в нуловые значение какую нибудь инфу - это конечно же вариант, просто хотел узнать есть ли вариант сортировки по двум полям, одно из которых нуловое)

Вы еще по ходу удаление с сортировкой путаете.
Вы точно понимаете, что хотите сделать ?
5 май 16, 16:55    [19139322]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
iljy
Member

Откуда:
Сообщений: 8711
fireblood
AlanDenton,

Спасибо, но этой действующая таблица, тип менять низя)


IMAGE на varbinary(max) заменяется легко и непринужденно и незаметно для клиентов. Ну не считая блокировки таблицы на момент замены.
5 май 16, 16:55    [19139325]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8335
iljy
fireblood
AlanDenton,

Спасибо, но этой действующая таблица, тип менять низя)


IMAGE на varbinary(max) заменяется легко и непринужденно и незаметно для клиентов. Ну не считая блокировки таблицы на момент замены.

+1 клиент не различает таких тонкостей, для него это всё BLOB.
5 май 16, 17:19    [19139432]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
vborets
Member

Откуда:
Сообщений: 166
так не работает?

delete FROM [base].[dbo].[Credential]
WHERE Type = 2 AND (Data IS NULL)
5 май 16, 17:40    [19139516]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
AlanDenton
Member [скрыт]

Откуда:
Сообщений: 1004
vborets, а в чем сакральный смысл круглых скобок? :)
5 май 16, 17:51    [19139548]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
vborets
так не работает?
Да у него и исходный запрос, без скобок, отлично работает.
Автор так и не сказал, что ему надо, что его не устраивает.
5 май 16, 18:55    [19139695]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
fireblood
Member

Откуда:
Сообщений: 7
vborets
так не работает?

delete FROM [base].[dbo].[Credential]
WHERE Type = 2 AND (Data IS NULL)


Так не работает)

alexeyvg
vborets
так не работает?
Да у него и исходный запрос, без скобок, отлично работает.
Автор так и не сказал, что ему надо, что его не устраивает.


Объясняю - я хочу удалить все строки совпадающие по двум критериям:
первый - Type = 2
Второй - Data = NULL
5 май 16, 19:14    [19139731]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
iljy
Member

Откуда:
Сообщений: 8711
fireblood,

в вашей таблице (по крайней мере в той части, которую вы показали) таких строк тупо НЕТ.
5 май 16, 21:04    [19140069]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Mind
Member

Откуда: Лучший город на Земле
Сообщений: 2322
fireblood
Объясняю - я хочу удалить все строки совпадающие по двум критериям:
первый - Type = 2
Второй - Data = NULL
А теперь пожалуйста напрягите свой мозг еще раз и внимательно прочитайте следущее:

Ваша задача логически может ли быть разбита на две подзадачи?
1. удалить все строки где Type = 2
И
2. удалить все строки где Data = NULL

Если ответ - да, то вам нужно условие ИЛИ (OR): where Type='2' OR Data IS NULL
Если ответ - нет, это два неразрывных условия, которые должны проверятся вместе, то вы написали правильный запрос и у вас просто нет таких данных в таблице, поэтому "обработано 0 строк".
5 май 16, 22:22    [19140344]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
Akina
Member

Откуда: Зеленоград, Москва, Россия
Сообщений: 20970
Просто проверьте, а есть ли требующие удаления данные в таблице? Что показывают
SELECT COUNT(*) 
FROM [base].[dbo].[Credential]
WHERE (Type='2');

SELECT COUNT(*) 
FROM [base].[dbo].[Credential]
WHERE (Data IS NULL);

SELECT COUNT(*) 
FROM [base].[dbo].[Credential]
WHERE (Type='2') AND (Data IS NULL);

И насколько правда, что тип поля Type - строковый?
6 май 16, 09:46    [19141113]     Ответить | Цитировать Сообщить модератору
 Re: Удаление NULL строк.  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 31783
fireblood
vborets
так не работает?

delete FROM [base].[dbo].[Credential]
WHERE Type = 2 AND (Data IS NULL)


Так не работает)

alexeyvg
пропущено...
Да у него и исходный запрос, без скобок, отлично работает.
Автор так и не сказал, что ему надо, что его не устраивает.


Объясняю - я хочу удалить все строки совпадающие по двум критериям:
первый - Type = 2
Второй - Data = NULL
Покажите хотя бы одну строку (напишите её Id), удовлетворяющую условию "поле Type равно 2 И поле Data равно NULL"
6 май 16, 13:19    [19142343]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить