SQL - Получить только одну запись связанных записей - PullRequest
1 голос
/ 22 апреля 2020

У меня есть таблица, которая отображает акции определенного типа записи. Для общего элемента создаются 2 записи, в результате чего получается что-то вроде

|--------------|------------|
|  Shared From | Shared To  |
|--------------|------------|
|   Record 1   |  Record 2  |
|--------------|------------|
|   Record 2   |  Record 1  |
|--------------|------------|

Возможно ли получить одну запись общего ресурса? Это означает, что из приведенной выше таблицы я получаю только одну запись (без разницы, какая)

|--------------|------------|
|  Shared From | Shared To  |
|--------------|------------|
|   Record 1   |  Record 2  |

Использование отличного в обоих столбцах не работает, так как комбинация отличается

Ответы [ 2 ]

2 голосов
/ 22 апреля 2020

Используйте выражения case для возврата меньшего значения в первом столбце и большего значения в столбце вторичных данных. Сделайте SELECT DISTINCT для удаления дубликатов.

select distinct case when SharedFrom < SharedTo then SharedFrom else SharedTo end,
                case when SharedFrom > SharedTo then SharedFrom else SharedTo end
from tablename

Примечание: Может переключать столбцы для уникальных комбинаций. (Если col1> col2.)

0 голосов
/ 22 апреля 2020

Если я вас правильно понимаю, вы хотите получить одну строку из таблицы. Чтобы получить верхние N строк в таблице, вы можете использовать TOP('N'), например:

SELECT TOP(1) share_column FROM shares_table
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...