我有一个格式的数据集;
并且需要格式化;
上周我曾多次尝试过枢轴转动,但我不是真正的程序员,知道何时向成年人寻求帮助。
数据库在MSSQL 2012上运行,数据集将包含每个ClinicalTrialID的14个Mode_Antibiotics,ModeQualifier和ModeMIC条目,总共约3000个ClinicalTrialID。
答案 0 :(得分:0)
在动态的SQL中很难做到这一点。如果我是新的T-SQL,我会编写一个返回所需数据集的表函数。但是,在纯ANSI SQL中,由于您没有那么多列,您可以使用以下内容:
SELECT
ClinicalTrialID,
MAX(CASE
WHEN Mode_Antibiotic = 'Amikacin'
THEN Mode_Antibiotic
END) Antibiotic1,
MAX(CASE
WHEN Mode_Antibiotic = 'Amikacin'
THEN Mode_Qualifier
END) Qualifier1,
MAX(CASE
WHEN Mode_Antibiotic = 'Amikacin'
THEN Mode_MIC
END) MIC1,
MAX(CASE
WHEN Mode_Antibiotic = 'Ampicillin'
THEN Mode_Antibiotic
END) Antibiotic2,
MAX(CASE
WHEN Mode_Antibiotic = 'Ampicillin'
THEN Mode_Qualifier
END) Qualifier2,
MAX(CASE
WHEN Mode_Antibiotic = 'Ampicillin'
THEN Mode_MIC
END) MIC2,
-- repeat 12 times with the remaining antibiotics
FROM t
GROUP BY ClinicalTrialID;
希望有所帮助。