Oracle SQL技巧

Oracle SQL技巧,sql,oracle,Sql,Oracle,我想在oracle SQL中的SQL查询的where子句中执行以下操作 $p=所有然后在buildingname中从建筑中选择buildingname else buildingname=$p 问题是我无法分析这个$p变量,也就是说,我无法检查它包含的内容。听起来你只是想要一个OR条件 SELECT * FROM sometable WHERE ( :bind_variable = 'All' AND buildingname IN (SELECT building

我想在oracle SQL中的SQL查询的where子句中执行以下操作

$p=所有然后在buildingname中从建筑中选择buildingname else buildingname=$p


问题是我无法分析这个$p变量,也就是说,我无法检查它包含的内容。听起来你只是想要一个OR条件

SELECT *
  FROM sometable
 WHERE (    :bind_variable = 'All' 
        AND buildingname IN (SELECT buildingname
                              FROM building))
     OR buildingname = :bind_variable

听起来你只是想要一个或一个条件

SELECT *
  FROM sometable
 WHERE (    :bind_variable = 'All' 
        AND buildingname IN (SELECT buildingname
                              FROM building))
     OR buildingname = :bind_variable

您可以在子查询中使用OR,因此如果$p为“all”,则它可以选择建筑选择或全部选择

buildingname in (Select buildingname from Building WHERE buildingname = $p OR $p = 'All')

您可以在子查询中使用OR,因此如果$p为“all”,则它可以选择建筑选择或全部选择

buildingname in (Select buildingname from Building WHERE buildingname = $p OR $p = 'All')

如果字符串中的变量被它所包含的任何内容替换,则它不是绑定变量,而只是来自PERL或PHP等语言的变量,并在正在构建的select字符串中使用:

$selectstring = "SELECT *
  FROM sometable
 WHERE (    '$p' = 'All' 
        AND buildingname IN (SELECT buildingname
                              FROM building))
     OR (   '$p' <> 'All' AND buildingname = '$p'"

如果字符串中的变量被它所包含的任何内容替换,则它不是绑定变量,而只是来自PERL或PHP等语言的变量,并在正在构建的select字符串中使用:

$selectstring = "SELECT *
  FROM sometable
 WHERE (    '$p' = 'All' 
        AND buildingname IN (SELECT buildingname
                              FROM building))
     OR (   '$p' <> 'All' AND buildingname = '$p'"

不清楚你在问什么。你是从哪种语言来的,你的$p是什么意思。你能再发一些代码吗?不清楚你在问什么。你是从哪种语言来的,你用$p是什么意思。你能发布更多的代码吗?问题是我不能解析bind变量,这意味着我不能检查它包含的内容,也就是说,我不能这样做:bind_variable='All'@ShitalBumb-没有必要解析bind变量。只需将绑定变量传递到SQL语句中,您需要将其传递两次。问题是我无法解析绑定变量,这意味着我无法检查它是否包含,即,我无法执行以下操作:bind_variable='All'@ShitalBumb-无需解析绑定变量。只需将bind变量传递到SQL语句中,您需要将其传递两次。我不能像这样做$p='都是由于一些约束。我不能像这样做$p='都是由于一些约束