SQLite限定・条件分岐させたい


お世話になります。

SQLite限定で、UPDATEで更新する値を、条件により  
分岐させたいと考えています。  
Webで検索すると、transact-sqlらしきものではできると  
見つかるのですが、SQLiteでは使えるのでしょうか？

やりたいのは、下記のような内容になります。

[code]

    SELECT MIN(index) FROM list WHERE index > (SELECT t_index FROM conf)
    
    //値がない場合
    if (false)
    {
        UPDATE conf SET t_index=(SELECT MIN(index) FROM list WHERE index > 0)
        // 1以上の値の中から最小値をセット
    }
    // 値がある場合
    else
    {
        UPDATE conf SET t_index=(SELECT MIN(index) FROM list WHERE index > (SELECT t_index FROM conf))
    }
    
[/code]

つまり、conf.t_indexよりも大きい値がlist.indexにあれば、その中の最小値を  
conf.t_indexにセットし、大きい数がなければlist.indexの最小値をセットしたいのです。

初心者なので、解らないためこのような質問になっていますが、  
ソースコード側で分岐させなくても、SQLのみで実現できそうな気はします。

何卒よろしくお願いいたします。




CASE式で機械的に書いてみました。  
indexが予約語なので、ダブルクォートで囲んでいます。

[code]

    UPDATE conf
    SET t_index =
    ( 
      SELECT MIN("index")
      FROM list
      WHERE "index" >
      CASE WHEN EXISTS( SELECT "index" FROM list WHERE "index" > (SELECT t_index FROM conf))
      -- 値がある場合、conf.t_indexより大きなlist.indexの最小値をセット
      THEN ( SELECT t_index FROM conf)
      -- 値がない場合、1以上のlist.indexの最小値をセット
      ELSE 0
      END
    )
    
[/code]




CASE式で機械的に書いてみました。  
indexが予約語なので、ダブルクォートで囲んでいます。

[code]

    UPDATE conf
    SET t_index =
    ( 
      SELECT MIN("index")
      FROM list
      WHERE "index" >
      CASE WHEN EXISTS( SELECT "index" FROM list WHERE "index" > (SELECT t_index FROM conf))
      -- 値がある場合、conf.t_indexより大きなlist.indexの最小値をセット
      THEN ( SELECT t_index FROM conf)
      -- 値がない場合、1以上のlist.indexの最小値をセット
      ELSE 0
      END
    )
    
[/code]

