Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.03.28;
Скачать: CL | DM;

Вниз

Можно ли выбрать в таблице записи у которых какое-либо поле NULL?   Найти похожие ветки 

 
Sirus ©   (2004-02-21 08:06) [0]

Привет Мастера...
Есть такая проблемка: Нужно выбрать из таблицы все записи в которых значение какого-либо поля NULL???


 
ЮЮ ©   (2004-02-21 08:12) [1]

WHERE (SomeField IS NULL)
и, наоборот,
WHERE ТЩЕ (SomeField IS NULL)


 
ЮЮ ©   (2004-02-21 08:13) [2]

ТЩЕ это NOT


 
Sirus ©   (2004-02-21 08:16) [3]

сформулируем вопрос по другому...
нужно выбрать список столбцов таблицы и их типы...
(потом уже можно будет сгенерить SQL)


 
ЮЮ ©   (2004-02-21 08:32) [4]

Для (SomeField IS NULL) знать тип поля не обязательно. А названия полей можно получить через
TIBDatabase.GetFieldNames(const TableName: string; List: TStrings); (или подобного метода используемого Connection-а, если это не TIBDatabase).

А типы можно извлечь или из системных таблиц или даже твоим запросом
SELECT * FROM Table WHERE
 (f1 IS NULL) or (f2 IS NULL) or ...
DataSet хоть и будет пуст, но его FieldDefs будут соответствовать таблице


 
Sirus ©   (2004-02-21 08:40) [5]

Дело в том что мне нужно при генерировании SQL запроса знать типы полей, чтобы добавить в SQL только NUMERIC поля...


 
ЮЮ ©   (2004-02-21 08:55) [6]

1) получаешь список полей ч/з GetFieldNames
2) формируешь запрос
 SELECT * FROM Table WHERE
(f1 IS NULL) AND (f2 IS NULL) AND ...
который быстро выполнится и не вернёт ни одной записи (т.к. Primary Key Field(S) <> NULL)
3) Анализируя FieldDefs формируешь нужный запрос
 SELECT * FROM Table WHERE
(NumericField1 IS NULL) OR (NumericField2 IS NULL) OR ...


 
P.N.P. ©   (2004-02-22 00:02) [7]

если заранее имя таблицы неизвестно,
то поля можно получить так

select f.rdb$field_name as
FN,f.rdb$null_flag as
N,fs.rdb$character_length as L,
f.rdb$description as FD,
t.rdb$type_name as T
from rdb$relation_fields f
left join rdb$fields fs on fs.rdb$field_name = f.rdb$field_source
left join rdb$types t on fs.rdb$field_type = t.rdb$type and (t.rdb$field_name= "RDB$FIELD_TYPE")
where f.rdb$relation_name="MyTableName"
order by f.rdb$field_position



Страницы: 1 вся ветка

Текущий архив: 2004.03.28;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.042 c
3-1077869603
Dina
2004-02-27 11:13
2004.03.28
Как узнать где создан файл dbf в Paradox, dBase и какой версии?


1-1078558516
YurikGl
2004-03-06 10:35
2004.03.28
qtintf70.dll


14-1077873616
Тимохов
2004-02-27 12:20
2004.03.28
Может кто видел людей у метро, предлагающих, пожилым


8-1068987245
fiction
2003-11-16 15:54
2004.03.28
Визуализация звука


1-1078430787
Алексей
2004-03-04 23:06
2004.03.28
Новый компонент