Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.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
Teradata sql检查多行以确定有效性的两个条件(和)_Sql_Teradata_Teradata Sql Assistant - Fatal编程技术网

Teradata sql检查多行以确定有效性的两个条件(和)

Teradata sql检查多行以确定有效性的两个条件(和),sql,teradata,teradata-sql-assistant,Sql,Teradata,Teradata Sql Assistant,假设我有一张桌子,上面有苹果的名字和另一列的颜色 Variety Color Fuji Red Fuji Golden Granny Smith Green Granny Smith Red Gala Red Gala Golden Gala Green 我想知道哪些苹果品种既有红色的也有金色的,所以我期待的答案是富士和嘎拉。那么如何编写查询呢。当然

假设我有一张桌子,上面有苹果的名字和另一列的颜色

Variety        Color
  Fuji          Red
  Fuji          Golden
  Granny Smith   Green
  Granny Smith   Red
  Gala           Red
  Gala           Golden
  Gala           Green
我想知道哪些苹果品种既有红色的也有金色的,所以我期待的答案是富士和嘎拉。那么如何编写查询呢。当然,这个查询不起作用

Select variety from table where Color like all ('Golden%','Red%')
我的桌子有很多列,还有一个与此类似的巨大桌子

我会这样写:

Select variety
from table
where Color in ('Golden', 'Red')
group by variety
having count(distinct color) = 2;
鉴于您的示例数据,我认为没有理由像使用通配符一样使用

我将这样写:

Select variety
from table
where Color in ('Golden', 'Red')
group by variety
having count(distinct color) = 2;
鉴于您的示例数据,我认为没有理由像使用通配符一样使用

您可以使用:

相交运算符

仅返回两个查询结果中存在的行

您可以使用:

相交运算符

仅返回两个查询结果中存在的行