2016-05-02 18 views
0

すべての値を[値]列の値に更新するクエリを作成しようとしています。列内のすべての値を変更する更新ステートメント

Begin 
    UPDATE Order_Details 
    SET Value = (Value/100) * 10 
    WHERE Cust_Ref = ALL 
End 

それが仕事と

Incorrect syntax near keyword END

を思い付くしませんが、誰もがこれを修正する方法を知っています:私が思い付くたもの

これはありますか?

ありがとうございました!とても有難い!!!

+2

をしているのですか?あなたはすべてのCust_Refsまたは1つを 'ALL'と呼んでいます。私はALLが予約されていると思う。 – Brody

+0

Cust_Ref = All:[値]列のすべての行を[セット]コマンドの式に設定します。 – Ray

答えて

2

あなたはあなたがまたValue/100Integer除算を行います記録

をフィルタリングする場合にのみWhere句を使用する必要が

UPDATE Order_Details SET Value = (Value/100.0) * 10 

Where句を必要としません。 10進数値はresultには存在しません。だから、どちらかnumeratorまたはdenominator

decimalとして作る:Cust_Refは= ALL何を

select 1/ 10 -- Result 0 
select 1/ 10.0 -- Result 0.100000 
+0

それが条件付きの更新であったとしても、Endの近くの構文エラーは、 'varchar'値ALLの前後に引用符がないためでした。 – niksofteng

+0

@nikhilvartak - 'update 'の前に' BEGIN'があります –

関連する問題