回答

收藏

在SQL Server SELECT语句中使用CASE时消除NULL

技术问答 技术问答 222 人阅读 | 0 人回复 | 2023-09-12

我想写一份大而凌乱的报告,跨越五个表。一个表中有一列用于多个不同的值-5 G8 k/ u( l) P- N% U) q7 ]
本质上是一个标签列,其中标签是根据用户想要使用的其他元数据创造性地使用的。
& [# v$ R3 J! t5 y: O结果我把报表的查询返回了三条几乎相同的行,只在标记列中有所不同;例如,我可能会得到:
, B! z  f/ j2 u4 ]* ^NAME TAG EMAIL  BOB  A   BOB@EXAMPLE.COM  BOB  B   BOB@EXAMPLE.COM  BOB  C   BOB@EXAMPLE.COM我想做的就是将军TAG列内容分为三个独立列,从查询中返回,如下所示:
& t2 h0 {" k: M( X2 y3 F( l* YNAME A B C EMAILBOB  A B C BOB@EXAMPLE.COM所以,我试着用SQL SERVER CASE / WHEN执行此操作的功能;我是说,例如,当Tag列的值为 A将其返回列  A中;如果是4 Q& y7 K+ ?% h2 F: M  X
B把它放在 B等等。我以为这会回到上面的内容,但它给了我这个:
2 S; W/ e; g9 [2 W" R) t5 `NAME A    B    C    EMAILBOB  A    NULL NULL BOB@EXAMPLE.COMBOB  NULL B    NULL BOB@EXAMPLE.COMBOB  NULL NULL C    BOB@EXAMPLE.COM这显然不理想。
7 L, C) ?5 r6 X5 ~; s有什么想法,堆栈溢出天才吗?
  F* k2 R( Y3 s, ~  i) y. w                                                               
7 M# u$ F6 B8 F+ Z; T/ r3 F    解决方案:
分享到:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则