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

Chuyển các tham số IN WHERE cho Dạng xem PostgreSQL?

Bạn có thể sử dụng một hàm trả về đã đặt:

create or replace function label_params(parm1 text, parm2 text)
  returns table (param_label text, param_graphics_label text)
as
$body$
  select ...
  WHERE region_label = $1 
     AND model_id = (SELECT model_id FROM models WHERE model_label = $2)
  ....
$body$
language sql;

Sau đó, bạn có thể làm:

select *
from label_params('foo', 'bar')

Btw:bạn có chắc bạn muốn:

AND model_id = (SELECT model_id FROM models WHERE model_label = $2)

if model_label không phải là duy nhất (hoặc khóa chính) thì điều này cuối cùng sẽ gây ra lỗi. Bạn có thể muốn:

AND model_id IN (SELECT model_id FROM models WHERE model_label = $2)


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cách sử dụng kiểu dữ liệu Blob trong Postgres

  2. Cách tốt nhất để đếm các bản ghi theo khoảng thời gian tùy ý trong Rails + Postgres

  3. ĐẶT HÀNG THEO danh sách giá trị IN

  4. Các công cụ mã nguồn mở hàng đầu cho PostgreSQL Migrations

  5. Làm thế nào để phát hiện truy vấn giữ khóa trong Postgres?