Можно ли использовать подвыбор в качестве одного из возвращаемых столбцов запроса?
Например, я использую MySql, и у меня есть таблица, содержащая список идентификаторов, связанных с некоторыми данными.Я хотел бы преобразовать идентификаторы, связанные с данным элементом данных из другой таблицы, в список VarChar с разделителями-запятыми.Я знаю, что могу сделать это, используя что-то вроде:
DECLARE pr_StudentId INT; -- An input parameter
DECLARE @Classes VARCHAR(4096);
SELECT @Classes = COALESCE(@Classes + ',', '') + ClassTable.ClassId
FROM ClassTable, StudentTable
WHERE ClassTable.Id = StudentTable.Id
AND StudentTable.Id = p_StudentId;
Однако проблема в том, что мне нужно вернуть это в другом SELECT вместе с другими данными (например) из StudentTable, который являетсяв хранимой процедуре.Пока у меня есть это, но я не совсем уверен, как заставить это работать:
SELECT
StudentTable.Id,
StudentTable.Name,
(
SELECT @Classes
FROM
(
SELECT @Classes = COALESCE(@Classes + ',','') + ClassTable.ClassId
FROM ClassTable, StudentTable
WHERE ClassTable.Id = StudentTable.Id
)
) AS ClassList,
...
FROM StudentTable ....
WHERE ....
Может кто-нибудь пролить свет на то, является ли это правильным способом сделать это, если есть лучший способили если это вообще возможно?
Заранее большое спасибо.