我不确定这是否可以在 SQL Query 中完成。我可以做到EXCEL。
询问
SELECT
A,
B,
C,
D,
E,
F
from TableA
where D in ('MSD_CHANGE','MSD_CMT_CHANGE')
如果字段 D 包含MSD_CMT_CHANGE
然后在上面和右边的行中 1 = 7866 excel 语言 E1 = E2 中的另一个单词。
目前我从 SQL 中获取查询数据并在 Excel 中运行脚本来执行此操作。
如果我能在 SQL 中做这将减少我的工作量。
VBA代码:
Sub Test
Dim rng as Range, cl as Range
Set rng = Range("D2:D" & Range("D" & Rows.Count).End(xlUp).Row)
For each cl in rng
If cl = "MSD_CMT_CHANGE" AND cl.Offset(-1, 0) = "MSD_CHANGE" Then
cl.Offset(-1, 1) = cl.Offset(0, 1)
End If
Next cl
End Sub
解释
if field_D = MSD_CMT_CHANGE then
compare row above it if equal "MSD_CHANGE" then
cell E1 = E2.
我有超过 5000 行数据。
检查下面的图片以获得更好的解释。