-4

私はテスターであり、テストしている情報を除外するために多くの選択クエリを実行する必要があります。

ここに画像の説明を入力

同じ値を貼り付ける代わりに、グローバル変数を作成して使用する方法はありますか?

ここに画像の説明を入力

サンプルコード:

Select l.prod_package,m.* from avtt7m0 m, avtt7l0 l 
where l.cust_id='52317162090004' 
and l.ar_id=m.ar_id and m.lc_st_code='ACT'; 

Select m.* from avtt7m0 m, avtt7l0 l 
where l.cust_id='52317162090004' 
and l.ar_id=m.ar_id and m.lc_st_code='ACT'; 

Select * From AKTTD90 
where cust_id in ('52317162090004'); 

Select * From Kndt7m0 
where cust_id in ('52317162090004');
4

3 に答える 3

0

変数を宣言して値を割り当てることができcustomerます。

DECLARE @Customer BIGINT='52371762090004'

SELECT * FROM AKTTD90 WHERE Cust_id=@Customer

更新:上記のクエリを実行してみてください。

于 2016-12-05T09:54:25.407 に答える
0

これは SQL Server を対象としています - あなたの質問には特定の RDMS がありません。変数を使用することができDeclareます (これは、次に使用する必要があります (@ほとんどSetの場合):

SET @CustomerID = 12345
SELECT * FROM dbo.Customers WHERE CustomerID = @CustomerID

これは、テーブル名の変数など、特定のものには使用できないことに注意してください。GOまた、これらの変数はステートメントに耐えられないという意味で、実際にはグローバルではないことに注意してください。

于 2016-12-05T09:55:34.617 に答える
0

これを行う 1 つのオプションは、PL/SQL パッケージ変数を使用することです。

create or replace package steptest as
  procedure set(a number);
  function get return number;
end;
/

create or replace package body steptest as
  x number;
  procedure set(a number) is
  begin
    x:=a;
  end;
  function get return number is
  begin
    return x;
  end;
begin
  x:=0;
end;    
/

そして、次のことができます。

exec steptest.set(1234);

select steptest.get from dual;
于 2016-12-05T16:26:58.367 に答える