Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Как сделать вложенный запрос?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 166
Запрос возвращает массив, я его собрал LEFT JOIN:
{
"key1":"value1",
"key2":"value2",
"key3":"value3"
}


А мне нужно, например в key2 есть несколько значений и мне их надо все выбрать
{
"key1":"value1",
"key2":{
       "key1":"value1",
       "key2":"value2"
}
"key3":"value3"

А есть где есть несколько значение, но мне нужно вернуть только первую запись
8 ноя 18, 17:12    [21728446]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 35753
В MSSQL нет массивов.
8 ноя 18, 17:29    [21728478]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 166
я знаю, это результат выборки
8 ноя 18, 17:30    [21728479]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда: Moscow
Сообщений: 35753
sc2r2bey
я знаю, это результат выборки
MSSQL не выдает такие результаты.
8 ноя 18, 17:31    [21728481]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
Konst_One
Member

Откуда:
Сообщений: 10995
json смотри, новые версии умеют
8 ноя 18, 17:33    [21728484]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5819
sc2r2bey,

SQL2016+, JSON
8 ноя 18, 17:40    [21728500]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 166
я возможно не правильно выразился, переформулирую вопрос, как сделать, чтобы выбиралось во вложенном запросе несколько записей, возможно есть другой способ
      SELECT
        *, 
        (SELECT * Table2 FROM Table2 T2 WHERE T2.Column1 = T1.Column1 ) AS Alias, 
        FROM Table1 T1
8 ноя 18, 17:40    [21728501]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 5819
sc2r2bey,

select ...
from tbl1,
(select ...) tbl2
8 ноя 18, 17:42    [21728505]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
Диклевич Александр
Member

Откуда:
Сообщений: 596
sc2r2bey,
SELECT
        *
        FROM Table1 T1
 OUTER APPLY (SELECT * Table2 FROM Table2 T2 WHERE T2.Column1 = T1.Column1 ) AS Alias
8 ноя 18, 22:07    [21728801]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
PizzaPizza
Member

Откуда:
Сообщений: 114
sc2r2bey
Запрос возвращает массив, я его собрал LEFT JOIN:

А мне нужно, например в key2 есть несколько значений и мне их надо все выбрать
А есть где есть несколько значение, но мне нужно вернуть только первую запись


Непонятны критерии когда несколько записей, а когда одну выбирать.

sc2r2bey

А мне нужно, например в key2 есть несколько значений и мне их надо все выбрать
{
"key1":"value1",
"key2":{
       "key1":"value1",
       "key2":"value2"
}
"key3":"value3"



Интересно было бы увидеть решение с jsonом. Единственное, что, если я правильно понимаю, то так как вложенных значений у вас может быть рандомное количество, то select придется собирать динамически, если только json функции не предлагают какой то хитрый способ.
8 ноя 18, 23:04    [21728863]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
komrad
Member

Откуда: Msk -> Utrecht
Сообщений: 4544
sc2r2bey,

такое?
9 ноя 18, 01:30    [21728936]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
sc2r2bey
Member

Откуда:
Сообщений: 166
json отпадает, т.к. моя версия его не поддерживает
9 ноя 18, 10:55    [21729104]     Ответить | Цитировать Сообщить модератору
 Re: Как сделать вложенный запрос?  [new]
uaggster
Member

Откуда:
Сообщений: 472
sc2r2bey, сделайте хмл соответствующей структуры, а потом преобразуйте его в нужный json через xslt.
9 ноя 18, 15:37    [21729739]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить