Я попытался написать функцию, которая использует столбец в качестве параметра. Однако это не сработало. Мне было интересно, как я могу это исправить. Благодарю.sql function использовать столбец как параметр
CREATE FUNCTION dbo.tempMedian(@SCORE INT)
RETURNS @tempTable TABLE
(
onetcode VARCHAR(20),
SCORE INT
)
AS
BEGIN
WITH median(onetcode, SCORE, RowNum, loc_total) AS
(
SELECT onetcode,
@SCORE,
ROW_NUMBER() OVER (PARTITION BY onetcode ORDER BY @SCORE), --ORDER SCORE AND ASSIGN ROW NUMBER
COUNT(onetcode) OVER (PARTITION BY onetcode) --TOTAL NUMBER OF CASES
FROM t AS c
)
INSERT @tempTable
SELECT onetcode, AVG(@SCORE) avgAGW
FROM median
WHERE RowNum BETWEEN (loc_total + 1)/2 AND (loc_total+ 2)/2
GROUP BY onetcode
RETURN
END;
GO
Что не работает? Вы получаете ошибку? Или не получать ожидаемые результаты? Какие результаты должны быть тогда? –
Чтобы иметь столбцы в качестве переменных, вам нужен динамический SQL. Я не думаю, что вы можете написать функцию, которая использует динамический SQL. –