正确的超级极客......这就是让我感到自杀的场景!
我有这个问题:
SELECT
BIRMINGHAM.TOS,
BIRMINGHAM.Percentage,
CARDIFFREGUS.TOS AS Expr1,
CARDIFFREGUS.Percentage AS Expr2
FROM
BIRMINGHAM RIGHT OUTER JOIN
CARDIFFREGUS ON BIRMINGHAM.TOS = CARDIFFREGUS.TOS
这是我得到的结果:
TOS Percentage Expr1 Expr2 100.00% 100.00% 0.07% 100.00% default (DSCP 0) 61.37% default (DSCP 0) 61.74% af33 (DSCP 30) 11.49% af33 (DSCP 30) 15.44% af31 (DSCP 26) 8.86% af31 (DSCP 26) 13.85% af11 (DSCP 10) 15.22% af11 (DSCP 10) 4.63% ef (DSCP 46) 1.91% ef (DSCP 46) 3.72% NULL NULL cs6 (DSCP 48) 0.23% cs4 (DSCP 32) 0.15% cs4 (DSCP 32) 0.20% cs3 (DSCP 24) 0.06% cs3 (DSCP 24) 0.11% af21 (DSCP 18) 0.05% af21 (DSCP 18) 0.05% af41 (DSCP 34) 0.70% af41 (DSCP 34) 0.03% 100.00% 0.02% 0.07% 0.02%
正如您所看到的,TOS和Expr1列的某些值是相同的。 百分比和expr2列分别是TOS和expr1列的对应值。
我需要的是将TOS和Expr1列的值显示为1列,但所有值必须在那里一次(不重复相同的值)然后我需要显示百分比和expr2列的值在“新”创建的列(TOS + Expr1)旁边,它们各自与TOS和expr1列的原始值有关。
百分比和expr2列需要彼此独立地重新组合。
答案 0 :(得分:1)
SELECT
COALESCE(BIRMINGHAM.TOS,CARDIFFREGUS.TOS) AS [NewColumn],
BIRMINGHAM.Percentage,
CARDIFFREGUS.Percentage AS Expr2
FROM
BIRMINGHAM RIGHT OUTER JOIN
CARDIFFREGUS ON BIRMINGHAM.TOS = CARDIFFREGUS.TOS
编辑:
请注意,您将无法查看CARDIFFREGUS中与JOIN条件不匹配的记录。如果您也想查看此类记录,请使用FULL OUTER JOIN。
有关COALESCE()的更多信息:COALESCE MSDN
我不确定您的评论中“网站”的含义。如果你的意思是更多的表,添加另一个JOIN条件并在COALESCE函数中包含NewTable.TOS列。