powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / можно ли отменить сканирование второй таблицы в одном запросе по условию
6 сообщений из 6, страница 1 из 1
можно ли отменить сканирование второй таблицы в одном запросе по условию
    #39768294
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую. Знаю как решить задачу при помощи джойнов, но тогда сканирование ShopSaleNakDet будет постоянным, даже если NR не поступил. Знаю как избежать сканирования при помощи динамического сиквела - но к запросу обращение идет каждую минуту с разных мест на обновление картинки и я хотел бы чтобы запрос был скомпилированным. Как использовать "use case in where" прогуглено давно но вопрос остался

нарисовал желаемое (мечтаемое:) - может кто поможет:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
With Records as 
(

select NakList.* from [dbo].[ShopSaleNakList] NakList 

 WHERE 
 (
      case when @mode  =  'ищем по номеру' then 
    	       NakList.id in (select idNak from [dbo].[ShopSaleNakDet] where NR like '00022%')
             when @mode  =  'не ищем по номеру' then
               не сканируем [dbo].[ShopSaleNakDet] 

      end
) 
.....
...
Рейтинг: 0 / 0
можно ли отменить сканирование второй таблицы в одном запросе по условию
    #39768301
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
where 
  exists ( 
    select  * 
    from [dbo].[ShopSaleNakDet] x 
    where 
      @mode  =  'не ищем по номеру' 
      or ( NR like '00022%' and NakList.id =  x.idNak )
  )

+ почитать про Startup Predicate
...
Рейтинг: 0 / 0
можно ли отменить сканирование второй таблицы в одном запросе по условию
    #39768302
Гавриленко Сергей Алексеевич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, да, по NR можно построить индекс, тогда для условия like '00022%' будет возможен Index Seek.
...
Рейтинг: 0 / 0
можно ли отменить сканирование второй таблицы в одном запросе по условию
    #39768308
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, спсб...гляну
индекс я не захотел - это таблица с прайсами и они обновляются каждый час (от 10кило до 200кило записей) - как я засомневался в целесообразности...
...
Рейтинг: 0 / 0
можно ли отменить сканирование второй таблицы в одном запросе по условию
    #39768319
SangYong
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Гавриленко Сергей Алексеевич, ну то что EXISTS это хорошо, а IN это не очень - это понятно...может еще какие варианты :(
...
Рейтинг: 0 / 0
можно ли отменить сканирование второй таблицы в одном запросе по условию
    #39768363
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SangYong,

табличная функция if @a=1 select ... if @a=2 select ...
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / можно ли отменить сканирование второй таблицы в одном запросе по условию
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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