Как получить результат ниже с помощью SQL-запроса?

Команда:

1 India
2 Pakistan
3 Srilanka
4 Australia

Выход:

1 Pakistan VS India 
2 Srilanka VS Pakistan 
3 Srilanka VS India
4 Australia VS Srilanka
5 Australia VS Pakistan 
6 Australia VS India

Где твой код?

Eric Hauenstein 22.05.2018 20:10

Привет и добро пожаловать в SO. Вам нужно пометить СУБД, с которой вы работаете. Я сомневаюсь, что у вас есть и mysql, и sql-server. Также нам нужны детали, чтобы помочь. Вот отличное место для начала. spaghettidba.com/2015/04/24/…

Sean Lange 22.05.2018 20:21
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
Освоение PHP и управление базами данных: Создание собственной СУБД - часть II
В предыдущем посте мы создали функциональность вставки и чтения для нашей динамической СУБД. В этом посте мы собираемся реализовать функции обновления...
Документирование API с помощью Swagger на Springboot
Документирование API с помощью Swagger на Springboot
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
Роли и разрешения пользователей без пакета Laravel 9
Роли и разрешения пользователей без пакета Laravel 9
Этот пост изначально был опубликован на techsolutionstuff.com .
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
Как установить LAMP Stack - Security 5/5 на виртуальную машину Azure Linux VM
В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
6
2
63
2

Ответы 2

Я думаю, вы это ищете. Предположим, ваша исходная таблица называется '# temp2'

   select a.string+' VS '+b.string from #temp2 a cross join #temp2 b
    where a.string = 'Australia' and a.string<>b.string
    union all
     select a.string+' VS '+b.string from #temp2 a cross join #temp2 b
    where a.string = 'Srilanka' and a.string<>b.string and b.string not in (Select a.string from #temp2 a cross join #temp2 b
    where a.string = 'Australia')
    union all
     select a.string+' VS '+b.string from #temp2 a cross join #temp2 b
    where a.string = 'Pakistan' and a.string<>b.string 
    and b.string not in (Select a.string from #temp2 a cross join #temp2 b
    where a.string = 'Australia')
    and b.string not in (Select a.string from #temp2 a cross join #temp2 b
    where a.string = 'Srilanka')

Почему бы не сделать это как единый запрос и не отбросить все те предикаты where. Ради всего святого, это больше усилий, чем печатать вручную.

Sean Lange 22.05.2018 20:20

Спасибо за помощь Дэниел

Md Saud Alam 23.05.2018 03:13

это работает:

SELECT ROW_NUMBER() OVER(Order By (Select null)),t2.Name +' VS '+ t1.Name 
FROM Team t1
JOIN Team t2 on t2.id>t1.Id
order by t2.Id,t1.Id desc

Другие вопросы по теме