Как написать многосетевой запрос SELECT в SQL Server - PullRequest
0 голосов
/ 16 мая 2018

Рассмотрим таблицы ниже:

T_WORK

-------------------
| Work_id | Cre_d |
-------------------
|    1    | 2016  |
|    2    | 2017  |
|    3    | 2018  |
-------------------

T_WORK_PARAM

-----------------------------------
| Work_id | Param_nm | Param_val  |
-----------------------------------
|    1    |    Name  | John       |
|    1    |    Place | London     |
|    1    |    Date  | 01-01-2018 |
|    2    |    Name  | Trump      |
|    2    |    Place | Newyork    |
|    2    |    Date  | 02-02-2018 |
-----------------------------------

Мне нужен вывод в формате ниже

-----------------------------------
|         |    Name  | John       |
|    1    |    Place | London     |
|         |    Date  | 01-01-2018 |
-----------------------------------
|         |    Name  | Trump      |
|    2    |    Place | Newyork    |
|         |    Date  | 02-02-2018 |
-----------------------------------

В Oracle я могу добиться этого с помощью следующего запроса:

SELECT 
    T1.Work_id,
    CAST (MULTISET (SELECT Param_nm, Param_val
                    FROM T_work_param T2
                    WHERE T2.Work_id = T1.Work_id) AS type_param_tbl)
FROM 
    T_work T1

Где type_param_tbl is table of (Param_nm varhar2(1000), PAram_val varhar2(1000));

Как написать аналогичный запрос в SQL Server?

Если это невозможно в SQL Server - каков наилучший / обычный способ вернуть желаемый вывод вызывающей стороне (веб-сервис)?

Ответы [ 2 ]

0 голосов
/ 16 мая 2018

Способ достижения желаемого результата - это поворот столбца Param_nm. Это приведет к тому, что ваш результат будет представлен в виде таблицы, где вы сможете проанализировать / отобразить его в своем приложении.

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

Надеюсь, это поможет вам!

0 голосов
/ 16 мая 2018

К сожалению, вы не можете сделать это на сервере SQL.

Вы можете просто присоединиться к таблицам для получения похожего результата.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...