Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с решением SQL?

Игорь Бунтовских Ученик (77), на голосовании 7 месяцев назад
Повреждения в таблице tickets оказались более серьезными, чем думалось. В каждом столбце потенциально могут находиться значения NULL. Выведите все номера билетов, данные которых были повреждены (со значением NULL хотя бы в одном поле строки). Если номер билета сам оказался поврежденным, не выводите его. В выборке должен присутствовать один атрибут: id.
Обратите внимание на группировку условий.
Голосование за лучший ответ
Татьяна Просветленный (36377) 8 месяцев назад
Для решения данной задачи можно использовать следующий SQL-запрос:
 SELECT id 
FROM tickets
WHERE id IS NOT NULL
AND (
passenger_name IS NULL
OR contact_data IS NULL
OR seat_no IS NULL
OR travel_date IS NULL
OR flight_id IS NULL
);
Ranma Оракул (80453) 8 месяцев назад
Select id, number, col1, col2, col3 from tickets where (col1 is null or col2 is null or col3 is null) and number is not null
V̲i̲s̲t̲a̲s̲t̲e̲r̲ Искусственный Интеллект (263820) 8 месяцев назад
 DECLARE @sql NVARCHAR(MAX) = ''; 
DECLARE @tableName NVARCHAR(MAX) = 'tickets';

SELECT @sql = CONCAT(@sql,
' OR ',
QUOTENAME(column_name),
' IS NULL')
FROM information_schema.columns
WHERE table_name = @tableName;

SET @sql = CONCAT('SELECT id FROM ', @tableName, ' WHERE ', STUFF(@sql, 1, 4, ''));

EXEC sp_executesql @sql;
Похожие вопросы