powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / несколько условий одновременно
5 сообщений из 5, страница 1 из 1
несколько условий одновременно
    #40062081
mxlans
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
здравствуйте, подскажите как лучше всего написать напрос на несолько условий?

table: persons

columns:
name
surname
date
is-active

как выбрать 1 запись - где is-active = true, а если таких нет, то выбрать самые новые
на ум приходит только отсортировать по is-active а потом по дате и выбрать первую запись, но может есть какой-то другой способ?

Спасибо!
...
Рейтинг: 0 / 0
несколько условий одновременно
    #40062100
felix_ff
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mxlans
здравствуйте, подскажите как лучше всего написать напрос на несолько условий?

table: persons

columns:
name
surname
date
is-active

как выбрать 1 запись - где is-active = true, а если таких нет, то выбрать самые новые
на ум приходит только отсортировать по is-active а потом по дате и выбрать первую запись, но может есть какой-то другой способ?

Спасибо!


Код: sql
1.
2.
3.
4.
if exists (select 1 from [persons] where [is-active] = 1)
     select top (1) * from [person] where [is-active] = 1
else
     --другой селект который отбирает эти ваши "самые новые". поскольку критерии отбора "самых новых" вы не уточнили то и не пишу запрос
...
Рейтинг: 0 / 0
несколько условий одновременно
    #40062172
uaggster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шар для ваногвания подсказывает что-то типа:
Код: sql
1.
2.
3.
4.
Select Top(1) with ties *
from persons
Order by 
ROW_NUMBER() over (partition by [name], surname order by [is-active] DESC, [date] DESC, 1/0) ASC



ЗЫ: Для практического применения - лучше избавится от Top(1) with ties, и переписать в нормальном виде:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Select 
[name]
,surname
,[date]
,is-active
From (
Select *, ROW_NUMBER() over (partition by [name], surname order by [is-active] DESC, [date] DESC, 1/0 ) N
from persons
) t
Where N = 1
...
Рейтинг: 0 / 0
несколько условий одновременно
    #40062175
Фотография a_voronin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
uaggster,

Может не изобретать велосипед, а воспользоваться известными решениями SCD2, например,
https://en.wikipedia.org/wiki/Slowly_changing_dimension
...
Рейтинг: 0 / 0
несколько условий одновременно
    #40062185
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно без сортировки выбрать одну "самую новую" запись.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / несколько условий одновременно
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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