|
|
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
Привет всем! Дан справочник: id name 0 НЕТ 1 Казань 2 Астрахань Нa MS SQL Server следующий запрос Код: plaintext 1. 2. 0 НЕТ 2 Астрахань 1 Казань Вопрос: можно ли сделать такое без ХП в FB? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2004, 09:34:03 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
Dik76Привет всем! Дан справочник: id name 0 НЕТ 1 Казань 2 Астрахань Нa MS SQL Server следующий запрос Код: plaintext 1. 2. 0 НЕТ 2 Астрахань 1 Казань Вопрос: можно ли сделать такое без ХП в FB? Если лишнее поле не мешает, то можно так (несколько неестетично правда): Код: plaintext 1. 2. 3. 4. Теоретически должно выдать: 0 0 НЕТ 1 2 Астрахань 1 1 Казань ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2004, 10:30:29 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
Можно. Но давай уточним. Тебе надо отсиртировать сначала все чётные,а потом нечётные ? Или что ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2004, 18:20:07 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
JohnmenМожно. Но давай уточним. Тебе надо отсиртировать сначала все чётные,а потом нечётные ? Или что ? А я так понял, что надо сначала вывести 'НЕТ', а остальные записи отсортировать по полю name ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2004, 19:01:47 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
Ну если так, то Код: plaintext 1. 2. 3. или (без case) Код: plaintext 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.08.2004, 22:02:35 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
JohnmenНу если так, то ... или (без case) Код: plaintext 1. 2. 3. Оригинально. Мне понравилось - но пара моментов: 1) Эта идея сработает если первой надо вывести запись с наименьшим id. Но в общем случае, id может быть произвольным, тогда твой второй метод не применим. 2) Мне кажется второй метод должен работать меделнее чем union, если проиндексировать по id (а оно наверняка primary key): вычитание чисел с плавающей точкой, приведение к типу, вычитание целых чисел. Хотя, даже если так, то разницу в 0.000...1 секунды никто конечно не заметит ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 07:56:21 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
Даже при обычном select ..... from .... order by name НЕТ всегда будет первым если написать: [НЕТ], <НЕТ>, !НЕТ!, или русскую Н заменить на латинскую Н. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 08:36:35 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
Всем спасибо за решения! >Johnmen Второй вариант действительно оригинален. ZmeisheНЕТ всегда будет первым если написать: [НЕТ], <НЕТ>, !НЕТ!, или русскую Н заменить на латинскую Н. Это так, но тогда придется запрещать ввод этих символов, в противном случае пользователи могут ввести комбинацию, которая нарушит порядок. Например [Да]. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 09:02:49 |
|
||
|
Упорядочивание в справочнике
|
|||
|---|---|---|---|
|
#18+
авторЭто так, но тогда придется запрещать ввод этих символов, в противном случае пользователи могут ввести комбинацию, которая нарушит порядок. Например [Да]. Я своим не позволяю в справочниках редактировать записи с Id = 0. Это не их 'копенгаген'. Ввод этих символов следует запретить в любом случае, кроме Id=0. Я уже полгода разгребаю геморрои, когда в фамилиях, названиях улиц, населённых пунктах нахерачили ланиницу. В деревне 10 домов, а записана она в базе ЧЕТЫРЕ раза вперемешку кириллица/латиница. Приходит абонент, а дебил оператор, не найдя этот населённый пункт в справочнике, заявляет: 'Мы Вас не обслуживаем'. О как! Два дома обслуживаем, а 8 нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.08.2004, 09:25:14 |
|
||
|
|

start [/forum/topic.php?fid=40&msg=32640233&tid=1578121]: |
0ms |
get settings: |
10ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
216ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
| others: | 203ms |
| total: | 540ms |

| 0 / 0 |
