Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 在选择框内的一个案例中选择全部_Mysql_Sql_Select_Pentaho - Fatal编程技术网

Mysql 在选择框内的一个案例中选择全部

Mysql 在选择框内的一个案例中选择全部,mysql,sql,select,pentaho,Mysql,Sql,Select,Pentaho,我正在使用Pentaho,我想知道是否有可能进行如下查询: SELECT Something FROM Somewhere WHERE (CASE WHEN condition1 = 0 THEN Option IN (Parameter) ELSE (Option IN (SELECT Option FROM Somewhere_else)) END); 如果您需要一些精度,我希望在WHERE子句中不遵守我的条件的情况下选择所有内容(我希望在WHERE中选择的内容不同于原始选择)

我正在使用Pentaho,我想知道是否有可能进行如下查询:

SELECT Something
FROM Somewhere
WHERE (CASE WHEN condition1 = 0 THEN Option IN (Parameter) ELSE
      (Option IN (SELECT Option FROM Somewhere_else)) END);
如果您需要一些精度,我希望在WHERE子句中不遵守我的条件的情况下选择所有内容(我希望在WHERE中选择的内容不同于原始选择)。 请毫不犹豫地询问我的方法,当然也请回答

谢谢大家!


PS:该参数是一个Pentaho参数,在这里表示数组

只需使用常规条件:

SELECT Something
FROM Somewhere
WHERE (condition1 = 0 AND Option IN (Parameter))
   OR (condition1 != 0 AND Option IN (SELECT Option FROM Somewhere_else));

只需使用常规条件:

SELECT Something
FROM Somewhere
WHERE (condition1 = 0 AND Option IN (Parameter))
   OR (condition1 != 0 AND Option IN (SELECT Option FROM Somewhere_else));

你应该试试下面的

SELECT Something
FROM Somewhere
WHERE 
1 = case when condition1 = 0 THEN 
       case when Option IN (Parameter) then 1 else 0 end 
    else
       case when Option IN (SELECT Option FROM Somewhere_else) then 1 else 0 end
    end

你应该试试下面的

SELECT Something
FROM Somewhere
WHERE 
1 = case when condition1 = 0 THEN 
       case when Option IN (Parameter) then 1 else 0 end 
    else
       case when Option IN (SELECT Option FROM Somewhere_else) then 1 else 0 end
    end

CASE
在您的语句中是不相关的,在
WHERE
子句中几乎是不相关的

使用@X.L.Ant建议的简单条件,或者你可以做一些讨厌的加入,比如

SELECT *
FROM table a
INNER JOIN somewhere ON (option = 0 AND a.id = somewhere.id)
INNER JOIN parameter ON (option != 0 AND a.id = parameter.id)

假设您的参数在某种程度上是一个表。

CASE
在您的语句中是不相关的,在
WHERE
子句中几乎是不相关的

使用@X.L.Ant建议的简单条件,或者你可以做一些讨厌的加入,比如

SELECT *
FROM table a
INNER JOIN somewhere ON (option = 0 AND a.id = somewhere.id)
INNER JOIN parameter ON (option != 0 AND a.id = parameter.id)


假设您的参数在某种程度上是一个表。

您使用的是哪种DBMS?博士后?Oracle?在(参数)中使用MySQL(但通过Pentaho BI)
选项看起来是个错误。当我的条件为真时,这就像一个符咒(它是一个Pentaho参数,实际上代表一个数组)一样有效。您在使用哪个DBMS?博士后?Oracle?在(参数)
中使用MySQL(但通过Pentaho BI)
选项看起来是个错误。当我的条件为真时,这就像一个符咒(它是一个Pentaho参数,实际上代表一个数组),我不知道这是否是因为Pentaho,但实际上不起作用(内部选择返回空)。。。但这是正确的过程:)你确定你的内部查询是正确的吗?因为这是标准的SQL。。。虽然我不太了解Pentaho,但如果它不明白,那就太奇怪了。这是一个基本的选择否?我只想选择一切都是我的条件是假的。。。但如果我做错了,请告诉我:)确实是这样,而且您的查询在语法上是正常的,但我不知道您的“别处”表中有什么,我的意思是Pentaho不能仅仅因为用作子查询而从有效查询(非空目标表)中输出任何内容。您知道,Pentaho不允许完全动态查询,所以如果内部查询不起作用,我也不会感到惊讶。经过进一步的测试,很明显,可能是因为它是多线程的,当它为false时,我的condition1更新得很糟糕。。。我的意思是,它似乎在更改参数之前进行查询。。。因此,可能没有SQL问题(我这样开始是因为我不太擅长SQL),我不知道这是否是因为Pentaho,但这实际上不起作用(内部选择返回空)。。。但这是正确的过程:)你确定你的内部查询是正确的吗?因为这是标准的SQL。。。虽然我不太了解Pentaho,但如果它不明白,那就太奇怪了。这是一个基本的选择否?我只想选择一切都是我的条件是假的。。。但如果我做错了,请告诉我:)确实是这样,而且您的查询在语法上是正常的,但我不知道您的“别处”表中有什么,我的意思是Pentaho不能仅仅因为用作子查询而从有效查询(非空目标表)中输出任何内容。您知道,Pentaho不允许完全动态查询,所以如果内部查询不起作用,我也不会感到惊讶。经过进一步的测试,很明显,可能是因为它是多线程的,当它为false时,我的condition1更新得很糟糕。。。我的意思是,它似乎在更改参数之前进行查询。。。所以可能没有SQL问题(我是这样开始的,因为我不太擅长SQL),这一个看起来很复杂。这与我最初的查询有什么不同?核实一下?(刚刚测试过,不起作用,对不起…)这个看起来很复杂。这与我最初的查询有什么不同?核实一下?(刚刚测试过,不起作用,对不起…)我的参数是一个数组(精确地说是字符串)。但是很好的推理,伙计,我将以某种方式对其进行调整:)好吧,MySQL将以某种方式表示您的数组,因为SQL没有数组作为数据类型的概念。我想说的是,如果它不是现成的,肯定有一种方法可以将您的数组表示为要连接的本地表。因此,如果它是数组,我可以将其作为表传递?我的参数是一个数组(精确地说是字符串)。但是很好的推理,伙计,我将以某种方式对其进行调整:)好吧,MySQL将以某种方式表示您的数组,因为SQL没有数组作为数据类型的概念。我想说的是,如果它不是现成的,肯定有一种方法可以将您的数组表示为要连接的本地表。因此,如果它是数组,我可以把它当作桌子传递吗?