powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ORDER BY и null
16 сообщений из 16, страница 1 из 1
ORDER BY и null
    #32450215
Larvef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть запрос

SELECT gd_id, IIF(gd_name LIKE '%строка%', gd_name, null) AS gd_name, IIF(gd_descr LIKE '%строка%', gd_descr,null) AS gd_descr, IIF(gd_compl LIKE '%строка%', gd_compl, null) AS gd_compl FROM Goods WHERE gd_name LIKE '%строка%' OR gd_descr LIKE '%строка%' OR gd_compl LIKE '%строка%' ORDER BY gd_name, gd_descr, gd_compl

Запрос выводит, соответственно, три колонки. Поля, не отвечающие критерию в IIF, становятся null, поля отвечающие, выводят реальное текстовое содержимое. Теперь мне нужно сделать так, чтобы строки, в которых полей с NULL меньше всего, были наверху, а те которые содержат 1 поле с null были ниже по релевантности, те которые имеют 2 поля null еще ниже. Не совсем понимаю, как это сделать.

Помогите, пожалуйста.
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450216
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Пишем функцию:

function XXX(paramarray a)as integer
dim v as variant,n as integer
n=0
for each v in a
if isnull(v)then n=n+1
next
XXX=n
end function

В запросе добавляем вычисляемое поле:

XXX(field1,dield2,field3,...)

И сортируем по нему.
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450221
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
саныч а вроде у вас даже в лифтах кнопки нельзя жать в субботу? ))

можно и так

Код: plaintext
1.
ORDER BY iif(isnull(gd_name),'яяяяя',gd_name),
iif(isnull(gd_descr),'яяяяя',gd_descr), iif(isnull(gd_compl ),'яяяяя',gd_compl )


у MSSQL вроде есть директива для такой сортировки.
в аксессе скорее всего нет
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450223
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
мой ответ неправильный я невнимательно прочел постановку задачи
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450230
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
alexeyK-homeсаныч а вроде у вас даже в лифтах кнопки нельзя жать в субботу? ))
Будешь смеяться, но ровно полчаса назад я с этим столкнулся. У нас есть "субботние лифты" - они сами останавливаются на каждом этаже, без нажимания на кнопки. А сегодня я должен был ехать к своим друзьям в Ашдод помогать переезжать на новую квартиру. И ровно полчаса назад они мне позвонили, что все отменяется. Из двух лифтов в доме один еще не пущен, а второй работает в субботнем режиме, но в результате какого-то бага останавливается только на первом этаже и на последнем.
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450234
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
надо же а я думал что это шутка местная...)))
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450237
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
На самом деле я не знаю, для чего эти субботние лифты нужны. Потому что в субботу запрещено вообще ездить на чем угодно, если там участвует электричество (даже если двигатель бензиновый, а электричество только для зажигания).
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450240
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
А можно и по-другому:

order by IIF(gd_name LIKE '%строка%', 0, 1) + IIF(gd_descr LIKE '%строка%', 0, 1) + IIF(gd_compl LIKE '%строка%', 0, 1)
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450247
Larvef
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир Саныч
alexeyK-home

Спасибо огромное!

Владимир Саныч
В итоге сам разобрался. Пришел к твоему последнему варианту независимо :)
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450260
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Я еще раз перечитал вопрос. Там в операции Like используется знак %. Значит, это adp. И вставлять функцию в селект, наверно, нельзя.
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450277
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а SELECT gd_id, IIF( ?

MDB c SQL92
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450298
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Насколько я понимаю, в mdb может быть два варианта запроса:
1. Обычный - и тогда никаких %.
2. Pass-Through - и тогда никаких функций, кроме понимаемых сервером.
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450302
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
обычный в режиме аксесс 2002
sql89 like '*'
sql92 like '%'
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450307
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Видимо, я не знаю, что такое SQL92. Это настройка на синтаксис?
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450313
alexeyK-home
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
это стандарт языка sql
можно выбрать в настройках если файл MDB сохранен в формате 2002 (именно конвертирован файл а не запущен в аксессе 2002)
...
Рейтинг: 0 / 0
ORDER BY и null
    #32450316
Фотография Владимир Саныч
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Модератор форума
Понял, спасибо.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Microsoft Access [игнор отключен] [закрыт для гостей] / ORDER BY и null
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]