Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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
如果在下拉列表中选择了一条记录,SQL将拉取两条记录_Sql_Oracle_Case_Where - Fatal编程技术网

如果在下拉列表中选择了一条记录,SQL将拉取两条记录

如果在下拉列表中选择了一条记录,SQL将拉取两条记录,sql,oracle,case,where,Sql,Oracle,Case,Where,我有一个表单,用户必须从下拉列表中选择一个国家,然后在下一页显示该国家的结果。英格兰故意隐藏在形式中。但是,如果选择了英国,我需要在下一页显示英国和英国的结果(合并结果,这样用户就不知道国家之间有差异了 select DISTINCT country_id, country, language, abbreviation from countries where country_id = :country_id 我知道我必须在WHERE子句中使用CASE语句来检查是否选择了英国,然后包括英国。

我有一个表单,用户必须从下拉列表中选择一个国家,然后在下一页显示该国家的结果。英格兰故意隐藏在形式中。但是,如果选择了英国,我需要在下一页显示英国和英国的结果(合并结果,这样用户就不知道国家之间有差异了

select DISTINCT country_id, country, language, abbreviation
from countries
where country_id = :country_id

我知道我必须在
WHERE
子句中使用
CASE
语句来检查是否选择了英国,然后包括英国。但我似乎无法得到它。

英国和英国是否有相同或不同的国家id?请显示示例数据和输出。我怀疑英格兰/英国是您表中唯一的边缘案例。如果是一个国家中的一个国家,不应该有子国家id吗?英国和英国有相同或不同的国家id吗?请显示样本数据和输出。我怀疑英格兰/英国是您表格中唯一的边缘案例。如果它是一个国家中的一个国家,是否应该有子国家id?为了清晰起见,是否应该在名称周围有括号
:country\u id=和country\u id=
?即
其中(country\u id=:country\u id或(:country\u id=和country\u id=)
@Boneist我会让你得到这个职位,但肯定不是我的。我不介意对某些事情说得太清楚。到了初中,我们几乎都已经学会了乘法先于加法的惯例。我来自一所较老的开发人员学校,我希望人们应该知道and或and与相同的p是平行的最近规则。我知道我的博德马斯,但无论出于什么原因,和/或优先权从来没有真正困扰过我。讽刺的是,伊姆霍,你特别提到了括号,但后来跳过了一些。是的,我确实考虑过添加额外的一对。我想这是我的一个很难克服的恼怒。区别在于那一对配对很重要,而另一个则不重要。为了清楚起见,是否应该在
:country\u id=和country\u id=
?即
的位置(country\u id=:country\u id=或(:country\u id=和country\u id=)周围加上括号
@Boneist我会让你得到这个职位,但肯定不是我的。我不介意对某些事情说得太清楚。到了初中,我们几乎都已经学会了乘法先于加法的惯例。我来自一所较老的开发人员学校,我希望人们应该知道and或and与相同的p是平行的最近规则。我知道我的博德马斯,但无论出于什么原因,和/或优先权从来没有真正困扰过我。讽刺的是,伊姆霍,你特别提到了括号,但后来跳过了一些。是的,我确实考虑过添加额外的一对。我想这是我的一个很难克服的恼怒。区别在于那一对一对重要,而另一对则不重要。
where (country_id = :country_id or (country_id = <UK> and country_id = <ENGLAND>))
where
    case
        when :country_id = <UK> and country_id = <ENGLAND>
        then :country_id -- treat England as though it's UK
        else country_id
    end = :country_id