0

PL/SQL でクエリを作成するのに問題があります。私は、SQL Server T-SQL でそれを行う方法を正確に知っています。私は Oracle にはあまり詳しくありません。

プロシージャではなく、SQL の文字列である必要があります。

以下は、私が必要とする種類のクエリです。それは実際のクエリではありませんが、これの翻訳を見ると、必要なものが得られるはずです。

最初のクエリが 2 番目のクエリのサブセットであり、それがベース データの 5% 以上を占める場合、結果が返されることがわかります。

これを念頭に置いて、より良い書き方があれば、それにも興味があります!

DECLARE @x int
SELECT @x = COUNT(*) * 20
FROM table1
WHERE table1.a=1
AND table1.b=2
AND table1.c=3

DECLARE @y int
SELECT @y = COUNT(*)
FROM table1
WHERE table1.a=1
AND table1.b=2

If @x > @y
    SELECT *
    FROM table1
    WHERE table1.a=1
    AND table1.b=2
    AND table1.c=3

助けてくれてありがとう!

4

2 に答える 2

1

これは役に立ちます。

DECLARE 
  rate NUMBER(2,1);
  output SYS_REFCURSOR;
BEGIN

SELECT SUM(CASE WHEN c=3 THEN 1 ELSE 0 END ) / COUNT(*)
INTO rate
FROM table1
WHERE table1.a=1
      AND table1.b=2;

  IF (rate > 0.5) THEN
    OPEN output FOR
      SELECT *
      FROM table1
      WHERE table1.a=1
            AND table1.b=2
            AND table1.c=3
  END IF;
END;
于 2013-04-12T12:35:25.020 に答える