使用交叉表()我有如下表t1
:報價標記不正確時,在PostgreSQL中
create table t1 (
person_id int,
item_name varchar(30),
item_value varchar(100)
);
有五個記錄表所示:
person_id | item_name | item_value
1 'NAME' 'john'
1 'GENDER' 'M'
1 'DOB' '1970/02/01'
1 'M_PHONE' '1234567890'
1 'ADDRESS' 'Some Addresses unknown'
現在我想用交叉功能提取NAME
,GENDER
數據,所以我寫了一個SQL爲:
select * from crosstab(
'select person_id, item_name, item_value from t1
where person_id=1 and item_name in ('NAME', 'GENDER') ')
as virtual_table (person_id int, NAME varchar, GENDER varchar)
我的問題是,正如您看到crosstab()
中的SQL包含item_name
的條件,這會導致引號不正確。 我該如何解決問題?