Bạn cần phải sử dụng cùng một cách tiếp cận SQL động đã được đề xuất trong câu hỏi khác của bạn
PROCEDURE get_stat (gender IN VARCHAR2)
AS
v_sql varchar2(1000);
v_param varchar2(100) := 'AVG_WEIGHT';
v_stat number;
BEGIN
v_sql := 'SELECT ' || gender || ' FROM survey WHERE parameter = :1';
EXECUTE IMMEDIATE v_sql
INTO v_stat
USING v_param;
END get_stat;
Nhưng bạn sẽ có cùng những phản đối chung đã được nêu ra trong câu hỏi trước đó của bạn - mô hình dữ liệu về cơ bản là thiếu sót. Bạn sẽ được phục vụ tốt hơn nhiều nếu có một hàng riêng cho MALE
và FEMALE
kết quả khảo sát thay vì có các cột riêng biệt cho male
và female
kết quả.