在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 解决方案: |
|
|
|
|
|