2009-10-18 6 views
1

Использование Access 2003Как удалить пустые строки?

Table1

ID Name Value 

001 Raja 100 
002 Ramu 200 


004 Raqu 500 



008 Ravi 250 

...

Здесь я хочу, чтобы удалить пустые строки в моей таблице?

Delete from table1 ...? 

Ожидаемый результат

ID Название Значение

001 Raja 100 
002 Ramu 200 
004 Raqu 500 
008 Ravi 250 

...

нужно Запрос справки.

+0

Это не имеет ключа, поэтому не является таблицей (что является половиной проблемы). – onedaywhen

ответ

5
Delete from table1 
where ID=' ' 
and Name=' ' 
and Value=' ' 

или

Delete from table1 
where ID is null 
and Name is null 
and Value is null 
+0

Остерегайтесь пробелов. вкладки или возврат каретки. Это может привести к сбою sql, потому что поле не NULL, а не одно место. Вы можете использовать некоторые встроенные функции в ms-доступе, например. isnumeric(), чтобы уточнить критерии удаления. – heferav

+0

IsNumeric()? Как это поможет? –

1

Если ваши поля Alow строки нулевой длины и может иметь пробелы в них, вот одно решение:

DELETE FROM table1 
    WHERE Len(Trim(ID & ''))=0 
    AND Len(Trim(Name & ''))=0 
    AND Len(Trim(Value & ''))=0; 

Я предполагаю, что вы пишете ваш SQL для выполнения в самом доступе, поскольку Trim() и Len() являются функциями доступа/VBA (оба предоставляются службой выражения Access с помощью VBA, поэтому это не будет работать через ODBC или OLEDB).

Теперь это игнорирует другие проблемы в таких полях, как вкладки или символы Cr/Lf. f вышесказанное не удаляет все строки, тогда вам нужно будет всплывать в полях, чтобы увидеть, что представляют собой фактические символы, а затем очистить их.

Я также надеюсь, что имена ваших полей являются поддельными, так как NAME и VALUE являются зарезервированными словами Access и их следует избегать в именах объектов на любом уровне в Access/Jet/ACE.

0

Я бы рекомендовал более универсальное решение:

DELETE tblYourTable.*, tblYourTable.[OneFieldThatIsAlwaysEmpty] 
FROM tNewTable 
WHERE tNewTable.[OneFieldThatIsAlwaysEmpty] Is Null; 

Это требует, конечно, что у вас есть поле в таблице, которое истинно пустым (Null)

Преимущество заключается в том, что вы не необходимо определить все отдельные поля в таблице. В приведенных выше ответах это не проблема, так как в таблице примеров есть только два или три поля. Но обычно таблицы больше.

Обратите внимание, что запрос на удаление не будет работать, если ваша таблица не является фактической таблицей в Access, а так называемой «связанной таблицей», которая принимает данные, например. из Excel. В этом случае вы должны перенести свои данные в настоящую таблицу Access.

(Это было проверено в Access 2010)