Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

thêm dấu phẩy (,) trong Oracle

Oracle không có một chức năng như GROUP_CONCAT của MySQL, đây chính xác là chức năng bạn đang yêu cầu. Các tùy chọn khác nhau để tổng hợp chuỗi như vậy được cung cấp trên trang này - một là sử dụng một chức năng tùy chỉnh:

CREATE OR REPLACE FUNCTION get_subjectkey (IN_PK IN MYTABLE.PRIMARY_KEY%TYPE)
RETURN VARCHAR2
IS
  l_text  VARCHAR2(32767) := NULL;
BEGIN

  FOR cur_rec IN (SELECT subject_key 
                    FROM MYTABLE 
                   WHERE primary_key = IN_PK) LOOP
    l_text := l_text || ',' || cur_rec.ename;
  END LOOP;

  RETURN LTRIM(l_text, ',');
END;

Sau đó, bạn sẽ sử dụng nó như:

SELECT get_subjectkey(?) AS subject_key
  FROM DUAL

...Thay thế "?" với giá trị khóa chính.

Trước đây

Giả sử bạn chỉ muốn thêm dấu phẩy vào cuối giá trị cột, hãy sử dụng:

SELECT DISTINCT TO_CHAR(subject_key) || ','
  FROM MYTABLE

Đường ống đôi - "||" - là phương tiện Oracle [, PostgreSQL và bây giờ là ANSI] để nối các chuỗi trong SQL. Tôi đã sử dụng TO_CHAR để chuyển đổi kiểu dữ liệu một cách rõ ràng, nhưng bạn có thể sử dụng:

SELECT DISTINCT subject_key || ','
  FROM MYTABLE

... nếu điều đó không cần thiết.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiểm tra ngày hợp lệ trong Oracle

  2. Lỗi thời gian chạy không xác định trong khi thực thi tập lệnh vba

  3. MyBatis RowBounds không giới hạn kết quả truy vấn

  4. Làm cách nào để đặt đúng biến ORACLE_HOME trên Ubuntu 9.x?

  5. Lệnh gọi hàm Oracle PLSQL thành một hàm thứ hai