В моей таблице 3 столбца:
Данные имеют тип XML, который содержит предметы и оценки. Мне нужно извлечь метку и тему из XML, но когда идентификатор сотрудника InActive, мне нужно просто вернуть один результат как NULL, даже если XML имеет тему и метку.
Ниже приведен запрос, который я попробовал и получил следующую ошибку.
В списке выбора можно указать только одно выражение, если подзапрос не вводится с EXISTS.
SELECT eo.employeeid,
Result.marks.[Subject],
Result.marks.[Mark]
FROM employee eo
OUTER apply (SELECT CASE
WHEN eo.active = 0 THEN (SELECT NULL AS 'Subject',
NULL AS 'Mark')
ELSE ((SELECT f.n.value('@Subject', 'varchar(100)')
AS
'Subject',
f.n.value('@Mark', 'int')
AS
'Mark'
FROM eo.data.nodes('(/Employee/Results)') AS
F(n)))
END AS marks) Result