0

私がしようとしていることが達成可能かどうかはわかりません!!

ユーザー入力に基づいて select ステートメントを実行する SQL クエリを作成しようとしています。

したがって、ユーザー入力 = 1 の場合、実際のテーブルから選択する必要があります。ユーザー入力 = 0 の場合、デュアルから 0 または null を選択します。(これが可能な場合)。

これは、ユーザーからの入力を取得するために使用されるパラメーターです。?i_userkey:'':null? ユーザー入力が 1 の場合、null を 1 に変更します。

このパラメーターを使用してクエリを作成したいと考えています。このようなもの。

以下はロジックです。

IF i_userkey = 1 then 
       select ID,Gender,Age from TableA
If i_userkey = 0 then
       select 0 or null from dual.

これは可能ですか?

4

2 に答える 2

2

これはどう:

SELECT 
  CASE WHEN i_userkey = 1 THEN ID ELSE NULL END AS ID 
  CASE WHEN i_userkey = 1 THEN Gender ELSE NULL END AS Gender
  CASE WHEN i_userkey = 1 THEN AGE ELSE NULL END AS Age
FROM TableA

これにより、少なくとも、操作できる一貫した 3 列の結果セットが得られます。クエリが異なる列数を返すようにしてもうまくいきません。

于 2013-09-11T16:04:34.750 に答える