|
|
|
новичок
      
участник
Last Login: 20.12.2001 14:37
Сообщ.: 8,
Visits: 89
|
|
| Подскажите кто-нибудь, возможно ли в PL\SQL выполнить операции конъюнкции и дизъюнкции. Заранее благодарю
|
|
|
|
|
Supreme Being
      
участник
Last Login: 01.06.2003 18:26
Сообщ.: 263,
Visits: 2 905
|
|
Конечно же можно, друг мой. Not, And и Or, только будь осторожен при сравнении с Null, например: 1. true and null = null, 2. false and null = false, 3. true or null = true, 4. false or null = null. Удачи!
|
|
|
|
|
новичок
      
участник
Last Login: 20.12.2001 14:37
Сообщ.: 8,
Visits: 89
|
|
Огромное спасибо за ответ, но это я и так понимаю. Я имею в виду операции типа (12 and 7)=4
|
|
|
|
|
Supreme Being
      
участник
Last Login: 01.06.2003 18:26
Сообщ.: 263,
Visits: 2 905
|
|
| Не пойму для чего именно так, а не простыми операторами. Все, что не равно 0 - бедут труе, остальное - фальш, а как со строками я не знаю.
|
|
|
|
|
новичок
      
участник
Last Login: 20.12.2001 14:37
Сообщ.: 8,
Visits: 89
|
|
Я проектирую БД по документообороту.Тип документа я забиваю в некоторое поле в таблице. Документ может являтся одновременно например гос. стандартом (ГОСТ) и техническими условиями (ТУ). Я решил показать это следующим образом: ---Создать числовое поле ТИП_ДОК ---Если документ является ТУ то включаем 0-й бит, если ГОСТ то 1-й бит и т.д и т.п. Это я привел упрощенный пример Так вот, смысл в том, как мне посмотреть что документ являетя ГОСТ? В Delphi это делается просто: проверить на истинность выражение (ТИП_ДОК and 2) А как это сделать на сервере ума не приложу.
|
|
|
|
|
Supreme Being
      
участник
Last Login: 01.06.2003 18:26
Сообщ.: 263,
Visits: 2 905
|
|
а если так:
IF doc_type = 1 THEN /* тип документа ГОСТ */ ELSIF doc_type = 2 THEN /* тип документа ТУ */ /* ELSIF doc_type = ... другие условия */ /* другие реакции */ ELSE /* не удовлетворяет */ END IF
|
|
|
|
|
Forum Guru
      
участник
Last Login: 17.04.2003 15:55
Сообщ.: 69,
Visits: 760
|
|
| Бред!!! Неправильно проектируешь. Никаких битовых полей, этож реляционная база данных. Делаешь таблицу типов документов, вроде DOC_TYPE (DOC_TYPE_ID, NAME, ...), в основной таблице пишешь ссылку на DOC_TYPE. Поверь, многих проблем избежишь при стандартных селектах. А код PL/SQL тебе Kreek вобщем правильно написал, только еще раз повторюсь, кроме PL/SQL есть еще просто SQL, который будешь активно использовать, если хочешь чтоб быстро работало!!!
|
|
|
|
|
Forum Guru
      
участник
Last Login: 17.04.2003 15:55
Сообщ.: 69,
Visits: 760
|
|
Кстати дополнение. Вместо чисел в primary key для таких таблиц можно использовать тип varchar2(30), ну длина 30 вобщем не обязательна, можно что-то свое. Тогда у тебя будут строковые константы например:
DOC_TYPE_ID NAME ----------- ------------ GOST Документ ГОСТ TU Документ ТУ
тогда можно сделать так:
select D.*, (select NAME from DOC_TYPE where DOC_TYPE_ID=D.DOC_TYPE_ID) as DTP from DOCUMENT D where D.DOC_TYPE_ID='GOST'
на клиенте показываешь только документы типа ГОСТ, ну и так далее.
|
|
|
|
|
|
| | |