基本上,我正在尝试合并两个表。 但是输出似乎与JOIN创建的NORMAL输出完全不同。 这听起来有些愚蠢,但是由于我不知道如何进行详细说明,因此我准备了一个快照。 (点击下面的链接)
与普通的JOIN语句的区别在于,表“ REAGENT_LOTS_ADDITIONALINFO”的多个记录合并为表REAGENT_LOTS的单个记录。
预先,我欠你们大家。谢谢。
答案 0 :(得分:1)
遵循此模式:
SELECT
lot.reagentlotid,
lot.reagentlotdesc,
MAX(CASE WHEN inf.attributeid = 'rl_a01' THEN inf.textvalue END) as rl_a01,
MAX(CASE WHEN inf.attributeid = 'rl_a02' THEN inf.textvalue END) as rl_a02,
... --add more "max case when" here
FROM
Reagent_lots lot
INNER JOIN
reagent_lots_additionalinfo inf
ON inf.reagentlotid = lot.reagentlotid
GROUP BY
lot.reagentlotid,
lot.reagentlotdesc
在...的位置,根据需要添加MAX CASE WHEN的重复次数,以涵盖属性行到列的转换
Sqlserver确实具有专有的PIVOT语法,但我倾向于采用这种模式,因为它适用于每个数据库供应商