1

こんにちは私は以下のようないくつかの条件に基づいてクエリベースを選択したいと思います。どうすれば達成できますか?

if var1>var2 then

SELECT * from table1;
ELSE
SELECT * from table2;
end if

前もって感謝します。

4

2 に答える 2

1

STORED PROCEDUREこの上に を作成し、

DELIMITER $$
CREATE PROCEDURE procName(IN _val1 INT, IN _val2 INT)
BEGIN
    IF _var1 > _var2 THEN
        SELECT * from table1;
    ELSE
        SELECT * from table2;
    END IF;
END $$
DELIMITER ;

プロシージャを呼び出すと、

CALL procName(1,2)
于 2013-02-12T09:22:36.737 に答える
0

このようなもの?

SELECT * from table1 WHERE var1>var2
UNION ALL
SELECT * from table2 WHERE var1<=var2

編集:あなたのコメントに基づいて、おそらく次のようなクエリが必要です:

SELECT Column1, Column2, Column3
FROM (
  SELECT 1 as Tab, Column1, Column2, Column3
  FROM Table1
  UNION ALL
  SELECT 0 as Tab, 'Value1', 'Value2', 'Value3'
) s
WHERE Tab = ((SELECT COUNT(*) FROM Table1)>10)

これにより、10 行を超える場合は table1 からすべての行が返され、それ以外の場合は単一の行 (データベースに存在しない) が返されます。

于 2013-02-12T09:40:34.120 に答える