我有一个包含四列的表:ID,OUTPUT,NOTE_TEXT,SOURCE
ID值一式三份,因为我用一个union all从三个不同的SOURCE中提取日期(一个联合不起作用,这很糟糕)。有效地使每条记录重复三次。
我需要将这些一式三份的ID值分解为每个ID一个记录。
以下是每个ID三次重复的NOTE_TEXT值的四种数据变体的屏幕截图:
以下是来自以下查询的示例输出:
从ID = 00793可以看出,以下案例陈述不起作用。这是为什么?同样,它可以修改为可以工作,还是应该构建一系列循环,还是有更优雅的解决方案?
最终目标是将其保存为存储过程并调用SSIS项目。任何见解或建议都表示赞赏。
select * from
(
select
ID
,OUTPUT
,case
when NOTE_TEXT = '' then case
when [SOURCE] = 'G1' and NOTE_TEXT != '' then NOTE_TEXT
when [SOURCE] = 'G2' and NOTE_TEXT != '' then NOTE_TEXT
when [SOURCE] = 'ENG' and NOTE_TEXT != '' then NOTE_TEXT
else ''
end
else NOTE_TEXT
end as NOTE_TEXT
from Table
) as temp
group by ID, OUTPUT, NOTE_TEXT
编辑:我可能一直不清楚,这是我想要使用现有的case语句或任何其他方式构建到查询中的逻辑。
答案 0 :(得分:0)
根据@ Habo的评论,使用案例陈述并不起作用。相反,这很有效。
class MyClass {
func mainMethod() {} }
extension MyClass {
func extensionMethod() {} }