我想知道是否可以以一种为单行产生多列值的方式构建我的SQL case语句,而不是创建一个新行。现在我正在为多个校园中的用户搜索ID,并且我想为一个人显示一次这样的值。
CASE WHEN R.CAMPUS = 'A' THEN R.NETID ELSE NULL END AS "A_NETID",
CASE WHEN R.CAMPUS = 'B' THEN R.NETID ELSE NULL END AS "B_NETID",
CASE WHEN R.CAMPUS = 'C' THEN R.NETID ELSE NULL END AS "C_NETID",
CASE WHEN R.CAMPUS = 'D' THEN R.NETID ELSE NULL END AS "D_NETID",
CASE WHEN R.CAMPUS = 'E' THEN R.NETID ELSE NULL END AS "E_NETID",
CASE WHEN R.CAMPUS = 'F' THEN R.NETID ELSE NULL END AS "F_NETID",
CASE WHEN R.CAMPUS = 'G' THEN R.NETID ELSE NULL END AS "G_NETID"
上面的代码是根据他们拥有的校园ID数量为每个用户创建一行,此时我不确定我能想到的是什么?
有没有人对此类案件有任何经验?
示例结果:Nathan在两个校区中,产生两行,每个校园ID一个,所需的目标是让Nathan的两个ID在每个值的单独列中的同一行中返回。 / p>
MainID DISPLAY_NAME EMAIL RELATIONSHIP_CAMPUS A_NETID
B_NETID C_NETID D_NETID E_NETID F_NETID G_NETID
12345 Nathan Smith (null) (null) nathansmith (null) (null)
(null) (null)
12345 Nathan Smith (null) nathanSmith (null) (null) (null)
(null) (null)
期望的结果将是:
MainID DISPLAY_NAME EMAIL RELATIONSHIP_CAMPUS A_NETID
B_NETID C_NETID D_NETID E_NETID F_NETID G_NETID
12345 Nathan Smith (null) nathanSmith nathansmith (null) (null)
(null) (null)
答案 0 :(得分:1)
只需汇总self.addSubview(nameLabel)
语句。根据实际数据调整列和表名称。如果您需要更多用户级别信息,请将其添加到CASE
和SELECT
行。
GROUP BY