|
Использование в SELECT ... WHERE вычисляемых полей
|
|||
---|---|---|---|
#18+
всем привет! есть ComboBox, в котором три значения: 'все', 'м', 'ж'. переменной polMW присваивается значение, выбранное пользователем Сейчас выборка по полу выполняется так: Код: sql 1. 2. 3. 4. 5.
А хочется сделать это одной строкой для любого варианта! Как в WHERE pol= указать, что нужно выбирать все записи, если пользователь выберет 'все', типа Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 19:05 |
|
Использование в SELECT ... WHERE вычисляемых полей
|
|||
---|---|---|---|
#18+
Код: sql 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 19:55 |
|
Использование в SELECT ... WHERE вычисляемых полей
|
|||
---|---|---|---|
#18+
Возможны, еще варианты 1. В качестве условия отбора можно указать просто логическую константу Код: sql 1.
2. При настройке SET ANSI OFF (это настройка по умолчанию), сравнение символьных строк идет до окончания символов в самом коротком выражении. А это значит, что любая символьная строка будет равна пустой строке. Следовательно, для случая "все" надо подставить пустую строку (две кавычки подряд) Код: sql 1.
3. Если в таблице не может быть других значений кроме "М" и "Ж", то можно указать два условия, объединенных по OR или функцию Inlist() или директиву IN. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 20:16 |
|
Использование в SELECT ... WHERE вычисляемых полей
|
|||
---|---|---|---|
#18+
Еще можно сравнить поле самим собой. Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 20:26 |
|
Использование в SELECT ... WHERE вычисляемых полей
|
|||
---|---|---|---|
#18+
ВладимирМВозможны, еще варианты 3. Если в таблице не может быть других значений кроме "М" и "Ж", то можно указать два условия, объединенных по OR или функцию Inlist() или директиву IN. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9.
Заработало! Огромное спасибо! у меня подобного рода выборок много будет и такой вариант позволит уйти от кучи IF ELSE ... |
|||
:
Нравится:
Не нравится:
|
|||
13.12.2012, 20:48 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1583271]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 168ms |
0 / 0 |