sql >> データベース >  >> RDS >> Sqlserver

数式を実行し、その値をSQLで変数に設定します

    sp_executesql でパラメーター化されたクエリを使用する 手順:

    DECLARE @val1 VARCHAR(20)= '500';
    DECLARE @val2 VARCHAR(20)= '300';
    DECLARE @Oper VARCHAR(20)= '>';
    
    DECLARE @query NVARCHAR(MAX);
    
    DECLARE @Flag INT= 0;
    
    SET @query = 'if ' + @val1 + @Oper + @val2 + ' set @Flag=1';
    
    DECLARE @ParamDefs NVARCHAR(MAX) = N'@Flag int output'
    
    EXEC sp_executesql @query, @ParamDefs, @Flag OUTPUT
    
    PRINT @Flag;
      

    また、いくつかの間違いを修正しました:

    1. declare @val1 varchar=100; デフォルトのサイズは 1 です および @val1 * で初期化されます 100 ではありません . int からキャスト/変換するとアスタリスク 詳細については。
    2. int にキャストする必要はありません 動的クエリ内


    1. PHP MySQL-6行ごとにdivを挿入しますか?

    2. Cakephpに複数のテーブルを保存することはできません

    3. C#でPL-SQLブロックによって返されるdbms.output値を取得する方法

    4. Oracle11gデータベース上のOracleORA-01805