Переключение на Главную Страницу Страницы: [1] 2  ОтправитьПечать
Горячая тема (более 10 ответов) Как сравнить два результата селектов? (число прочтений - 4442 )
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Как сравнить два результата селектов?
07. Июля 2008 :: 05:20
Печать  
Надо сравнить на идентичность два результата селектов, например
Select top 10 field1 from table1
и Select top 10 field1 from table2

как это сделать средствами SQL-сервера?

P.S. Порядок записей в наборе записей тоже важен.
  
Наверх
 
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Как сравнить два результата селектов?
Ответ #1 - 07. Июля 2008 :: 08:12
Печать  
Arta писал(а) 07. Июля 2008 :: 05:20:
Надо сравнить на идентичность два результата селектов, например
Select top 10 field1 from table1
и Select top 10 field1 from table2

как это сделать средствами SQL-сервера?

P.S. Порядок записей в наборе записей тоже важен.


может Exists поможет отцу русской демократии?

или же:
Код
Выбрать все
Select f1t1, f1t2  from
(Select top 10 field1 as f1t1 from table1
union
Select top 10 field1 as f1t2 from table2)
where f1t1 <> f1t2 


  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #2 - 07. Июля 2008 :: 08:14
Печать  
Цитата:
может Exists поможет отцу русской демократии?


И как он поможет сравнивать в порядке выборки?
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #3 - 07. Июля 2008 :: 08:27
Печать  
Цитата:
Select f1t1, f1t2  from
(Select top 10 field1 as f1t1 from table1
union
Select top 10 field1 as f1t2 from table2)
where f1t1 <> f1t2


И это не учитывает порядок выборки. Сначала строки пронумеровать надо. На sql.ru где то было про нумерацию.
  
Наверх
ICQ  
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #4 - 07. Июля 2008 :: 08:32
Печать  
http://www.sql.ru/faq/faq_topic.aspx?fid=126

Вот здесь описывается как получить номера строк
  
Наверх
ICQ  
IP записан
 
sml
Full Member
***
Отсутствует


I Love 1С++!

Сообщений: 186
Зарегистрирован: 28. Февраля 2008
Re: Как сравнить два результата селектов?
Ответ #5 - 07. Июля 2008 :: 09:10
Печать  
Nick писал(а) 07. Июля 2008 :: 08:32:
http://www.sql.ru/faq/faq_topic.aspx?fid=126

Вот здесь описывается как получить номера строк


Если нумеровать строки, то можно джойнить по этому номеру
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #6 - 07. Июля 2008 :: 09:15
Печать  
Цитата:
Если нумеровать строки, то можно джойнить по этому номеру

Гениально! Улыбка
  
Наверх
ICQ  
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #7 - 07. Июля 2008 :: 11:23
Печать  
Если бы была нумерация, то да. Но нумерация это геморой.
Как нумеровать - знаю, спасибо!
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #8 - 07. Июля 2008 :: 11:27
Печать  
Посмотри как тут (два селекта один из которых с отрицательными значениями и юнион олл)
http://infostart.ru/profile/2140/projects/2172/
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #9 - 07. Июля 2008 :: 11:32
Печать  
И непонятно... две выборки без условий, связей и проч., хез что там попадет в топ...
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Phoenix
Senior Member
****
Отсутствует


itpath.ru

Сообщений: 398
Местоположение: Москва
Зарегистрирован: 15. Июня 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #10 - 08. Июля 2008 :: 06:04
Печать  
Не уверен, но может прокатит:
Код
Выбрать все
drop table #t
select  * into #t
from (
	select t1.* from t1
		left join t2 on
			t1.f1 = t2.f1
			and t1.f2 = t2.f2
			and t1.f3 = t2.f3
	where
	 	t2.f1 is null
	union all

	select  t2.*
	from
		t2
		left join t1 on
			t2.f1 = t1.f1
			and t2.f2 = t1.f2
			and t2.f3 = t1.f3
	where
	 	t1.f1 is null

	) vt
select * from #t
 

  

Лень двигатель прогресса.&&http://www.itpath.ru&&;
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #11 - 08. Июля 2008 :: 07:23
Печать  
Phoenix писал(а) 08. Июля 2008 :: 06:04:
Не уверен, но может прокатит:

На первый взгляд должно взлететь Улыбка thx!
  
Наверх
 
IP записан
 
Вадимко
God Member
*****
Отсутствует


Нам бы чего про ОдноЦэ...

Сообщений: 1048
Местоположение: Минск
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #12 - 08. Июля 2008 :: 08:09
Печать  
Наверное... в случае если нет в колоночках null Улыбка
  

Кампутер, кофе и сигареты - это очень плохо для моего здоровья...
Наверх
IP записан
 
Arta
1c++ power user
Отсутствует



Сообщений: 2537
Местоположение: Нижний Новгород
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #13 - 08. Июля 2008 :: 09:15
Печать  
Цитата:
Наверное... в случае если нет в колоночках null Улыбка

Хмм... Логично
  
Наверх
 
IP записан
 
spock
1c++ developer
1c++ moderator
Отсутствует



Сообщений: 822
Местоположение: Новосибирск
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как сравнить два результата селектов?
Ответ #14 - 08. Июля 2008 :: 09:52
Печать  
А полное соединение почему нельзя сделать?
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать