我的表只有两列,即“CONTENT”和“VAL”,表中有 24,120 条记录,如下所示。每个 CANDIDATE_ID 有 120 行关联,我在表中有 201 个唯一的 CANDIDATE_ID(即 201X120 = 24,120 行)
我想将“VAL”列中的值转换为 ROW 标题,并将单元格中的关联“CONTENT”值转换为转置表中的标题。例如,如下所示,我也只想使用输出表中 120 个列名称中的一些选定列。
我正在使用以下查询进行此转置。
with t as
(
select content, val, row_number() over (partition by val order by val) as row_no
from "DEV_DB"."PUBLIC"."TEST_CANDIDATES"
)
SELECT * FROM T
PIVOT (MAX(CONTENT) FOR VAL
IN('CANDIDATEID','Candidate ID','Candidate Owner','First Name','Last Name','Email','Phone','Mobile','Website','Street','State','Candidate Status','City','Company Name','Company URL','Country','Created Time','Current Employer','Current Salary','Email Opt Out','Expected Salary','Experience in Years','Highest Qualification Held','In house recruiter assessment','Is Locked','Is Unqualified','Job Title','Last Activity Time','Last Mailed Time',
'Linkedin','Location','Rating','SMOWNERID','Salutation','Secondary Email','Source','Updated On','Work Authorization','Work Email','Zip Code')
)
作为此查询的输出,直到 LAST NAME,我的数据已完美映射(数据位于各个列名称上,例如“CANDIDATEID”、“Candidate ID”、“Candidate Owner”、“First Name”、“Last Name”)但是实际问题来自“电子邮件”列,其余列未正确映射到我的数据。
所以请帮我解决这个问题。