Добро пожаловать в форум, Guest >> Войти | Регистрация | Поиск | Правила | | В избранное | Подписаться | ||
Все форумы / Microsoft SQL Server |
![]() ![]() |
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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
На вашем рисунке нет ни одной записи, соответствующей двум условиям запроса Type='2' AND Data IS NULL |
||
5 май 16, 16:42 [19139239] Ответить | Цитировать Сообщить модератору |
fireblood Member Откуда: Сообщений: 7 |
Даже если написать Data='NULL' ТО скуль вывалит с ошибкой, мол нельзя тип image сравнивать с чем-либо |
||||
5 май 16, 16:43 [19139246] Ответить | Цитировать Сообщить модератору |
Pavel1211 Member Откуда: Екатеринбург Сообщений: 205 |
fireblood, а разве есть записи, подходящие по ваш фильтр? |
5 май 16, 16:43 [19139247] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Вы ответы читаете ? |
||
5 май 16, 16:46 [19139265] Ответить | Цитировать Сообщить модератору |
iap Member Откуда: Москва Сообщений: 47051 |
Во-вторых, может, надо удалить Type=2 ИЛИ Data IS NULL ? |
||||
5 май 16, 16:48 [19139275] Ответить | Цитировать Сообщить модератору |
fireblood Member Откуда: Сообщений: 7 |
AlanDenton, Спасибо, но этой действующая таблица, тип менять низя) |
5 май 16, 16:51 [19139298] Ответить | Цитировать Сообщить модератору |
fireblood Member Откуда: Сообщений: 7 |
iap, В том то и беда что мне как раз нужна сортировка именно по этим двум полям)) |
5 май 16, 16:52 [19139300] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Главное беда в том, что в вашей таблице нет записей, которые вы собрались убирать Вы легко можете это проверить запросом |
||
5 май 16, 16:53 [19139306] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
fireblood, какая еще "сортировка"? Мы же удалять по условию вначале топика хотели |
5 май 16, 16:53 [19139310] Ответить | Цитировать Сообщить модератору |
fireblood Member Откуда: Сообщений: 7 |
Glory, записать в нуловые значение какую нибудь инфу - это конечно же вариант, просто хотел узнать есть ли вариант сортировки по двум полям, одно из которых нуловое) |
5 май 16, 16:54 [19139313] Ответить | Цитировать Сообщить модератору |
fireblood Member Откуда: Сообщений: 7 |
Простите, опечатался. К концу дня мозг не оч работает |
||
5 май 16, 16:54 [19139320] Ответить | Цитировать Сообщить модератору |
Glory Member Откуда: Сообщений: 104760 |
Вы еще по ходу удаление с сортировкой путаете. Вы точно понимаете, что хотите сделать ? |
||
5 май 16, 16:55 [19139322] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
IMAGE на varbinary(max) заменяется легко и непринужденно и незаметно для клиентов. Ну не считая блокировки таблицы на момент замены. |
||
5 май 16, 16:55 [19139325] Ответить | Цитировать Сообщить модератору |
Владислав Колосов Member Откуда: Сообщений: 8335 |
+1 клиент не различает таких тонкостей, для него это всё BLOB. |
||||
5 май 16, 17:19 [19139432] Ответить | Цитировать Сообщить модератору |
vborets Member Откуда: Сообщений: 166 |
так не работает? delete FROM [base].[dbo].[Credential] WHERE Type = 2 AND (Data IS NULL) |
5 май 16, 17:40 [19139516] Ответить | Цитировать Сообщить модератору |
AlanDenton Member [скрыт] Откуда: Сообщений: 1004 |
vborets, а в чем сакральный смысл круглых скобок? :) |
5 май 16, 17:51 [19139548] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
Автор так и не сказал, что ему надо, что его не устраивает. |
||
5 май 16, 18:55 [19139695] Ответить | Цитировать Сообщить модератору |
fireblood Member Откуда: Сообщений: 7 |
Так не работает)
Объясняю - я хочу удалить все строки совпадающие по двум критериям: первый - Type = 2 Второй - Data = NULL |
||||||
5 май 16, 19:14 [19139731] Ответить | Цитировать Сообщить модератору |
iljy Member Откуда: Сообщений: 8711 |
fireblood, в вашей таблице (по крайней мере в той части, которую вы показали) таких строк тупо НЕТ. |
5 май 16, 21:04 [19140069] Ответить | Цитировать Сообщить модератору |
Mind Member Откуда: Лучший город на Земле Сообщений: 2322 |
Ваша задача логически может ли быть разбита на две подзадачи? 1. удалить все строки где Type = 2 И 2. удалить все строки где Data = NULL Если ответ - да, то вам нужно условие ИЛИ (OR): where Type='2' OR Data IS NULL Если ответ - нет, это два неразрывных условия, которые должны проверятся вместе, то вы написали правильный запрос и у вас просто нет таких данных в таблице, поэтому "обработано 0 строк". |
||
5 май 16, 22:22 [19140344] Ответить | Цитировать Сообщить модератору |
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] Ответить | Цитировать Сообщить модератору |
alexeyvg Member Откуда: Moscow Сообщений: 31783 |
|
||||||
6 май 16, 13:19 [19142343] Ответить | Цитировать Сообщить модератору |
Все форумы / Microsoft SQL Server | ![]() |