编写SQL查询并寻找一些建议/帮助时遇到困难
在'vocab'
列的原始表格中,我想以某种方式从上面的行中恢复信息。
例如 -
在第2行(' lstseqno' = 2)'词汇'这是-1实际上等于'词汇'上面一行(' lstseqno' = 1),所以'词汇' = 2
在第6行(' lstseqno' = 6)中,'词汇'这是-1实际上等于'词汇'上面一行(' lstseqno' = 5),所以'词汇' = 4
如何编写查询来执行此操作?
非常感谢!
答案 0 :(得分:0)
试试这个
select iif(t.vocab=-1, (select t2.vocab from your_table t2
where t2.lstseqno=t.lstseqno-1),
t.vocab) as vocab,
t.ref, t.code -- add here all other fields
from your_table t
当然,您应该使用实际的表名替换your_table
。您也可以将-1
替换为实际值(或使用is null
替换为空值。)
答案 1 :(得分:0)
也许这可能会有所帮助:
select actial.vocab [actual_vocab], above.vocab [above_vocab]
from original_tbl actual
left join original_tbl above on actual.lstseqno = above.lstseqno - 1
and actual.code = above.code
and actual.level = above.level