再帰SQLでやるならこんな感じ
最初に1がでたところで表示したいとのことなので
レコードの最後から加算積み上げてる
半角でレスしようとしたらインジョクションかなんかでエラーになった
ため全角に変換してます

WITH CTE AS (
SELECT NO,A,A AS B 
FROM TBL AS M

UNION ALL 
SELECT M.NO ,M.A ,S.B + 1 AS B −−Bを1で積上げていく
FROM TBL AS M
inner join CTE AS S
on  M.NO = S.NO −1 −−レコードの後ろから参照
and S.A = 1
and M.A = 1

), [WK1] AS (
SELECT NO,A,max(B) as B −−Bが積上開始位置により別々の数字になっているので最大値でサマリー
FROM CTE AS M
GROUP BY NO,A


SELECT M.NO,M.A,case when S.A = 0 then B else 0 end B −−前のレコードがゼロの時のみBを表示
FROM [WK1] AS M
LEFT JOIN TBL AS S
on M.NO −1 = S.NO 
ORDER BY M.NO