![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
||||
|
||||
![]() Здравствуйте, товарищи!
Обращусь к вам, за помощью. Есть таблица, в ней есть 32 столбца. Первый столбец - название датчика, остальные 31 - значение температуры (float -128...+128). Как можно выбрать только те записи, где хотя бы в одном столбце температура превышает допустимую? Можно конечно и : Код:
SELECT * FROM dbo.Table WHERE (a1 > 50) AND (a2 > 50) .... AND (a30 >50) |
#2
|
||||
|
||||
![]() ну
во первых: не AND, а OR во вторых: можно попробовать извратиться примерно таким образом: Код:
SELECT t.id, s.ss FROM dbo.Table t JOIN ( SELECT t1.id, ';'||t1.a1||';'||t1.a2||';'||t1.a3||';'||t1.a4||';'...||t1.a30||';' AS ss FROM dbo.Table t1 ) s ON s.id = o.id WHERE s.ss CONTAINING (';'||50||';') Поживу - увижу, Доживу - узнаю, Выживу - учту. ![]() [P.S.]->Выражая благодарность за помощь - Вы получаете шанс на помощь в следующий раз
Последний раз редактировалось Yurk@, 23.07.2013 в 14:09. |
#3
|
||||
|
||||
![]() Цитата:
может Код:
var z: string; ... z:='(a1 > 50) '; for i:=2 to 31 do z:=z + ' OR (a' + inttostr(i) + ' > 50) '; adoqury1.sql.text:='SELECT * FROM dbo.Table WHERE ' + z; хотя, с точки зрения базы ничего не изменится)) Я за здоровый экстрим! Спасибо за "спасибо") |