2014-12-30 3 views
0

В SQL Server у меня есть таблица с именем: CustomerAddr и строка с именем: Stnumber. У меня есть нецелые значения, которые я хочу удалить. Я хотел бы удалить строки нецелых значений. Я использую этот запрос, который показывает результаты нецелых значений:SQL Server: удаление нескольких строк на основе результата результата

Select * From [CustomerAddr] [Stnumber] Where ISNUMERIC ([Stnumber]) = 0 

Результаты показывают, 400 строк, а не в последовательном порядке. Как я могу удалить по результатам, любая помощь будет отличной.

Я использую этот запрос:

Удалить из CustomerAddr WHERE ISNUMERIC StNumber = '0';

, когда я использую удаление и ISNUMERIC перед тем STnumber я получаю сообщение: «Выражение Non-логического типа, указанный в условиях, когда состояние, как ожидается, около„Stnumber“

+0

лучше читать http://msdn.microsoft.com/en-us/library/ms189835.aspx – HaveNoDisplayName

+0

Просто замените 'Select *' на 'DELETE'. – dario

+0

FYI 'ISNUMERIC' возвращает значение true, если значение может быть преобразовано в числовой тип данных. Это включает в себя реальные, плавающие, деньги. По этой причине допускаются не-числовые символы, такие как ''+', '-', 'd', 'e', ​​'$', '£''. Поэтому просто будьте осторожны при использовании 'Isnumeric' –

ответ

1

вы можете использовать where в delete заявлении:

delete From [CustomerAddr] Where ISNUMERIC ([Stnumber]) = 0 
+0

, когда я использую delete и ISNUMERIC до появления STnumber. Я получаю сообщение:« Выражение небулевого типа, указанное в контексте, когда ожидается условие в «Stnumber» – tiburon1

+0

, попробуйте, что сейчас? ? – tiburon1

+0

@ обновленный запрос tiburon1 –

2

Просто используйте DELETE вместо ВЫБРАТЬ

DELETE From [CustomerAddr] Where ISNUMERIC ([Stnumber]) = 0 
+0

Получаю сообщение: «Неверный синтаксис рядом с« Stnumber » – tiburon1

Смежные вопросы