Sql 如何查看一个字段条目是否在另一个字段中有相应的条目?
我有一个名为Table1的表,如下所示:Sql 如何查看一个字段条目是否在另一个字段中有相应的条目?,sql,ms-access,Sql,Ms Access,我有一个名为Table1的表,如下所示: Company Start1 Start2 Start3 End1 End2 End3 ----------------------------------------------------------------------------- 010105 1/2/1990 7/30/2001 023123 2/1/1998
Company Start1 Start2 Start3 End1 End2 End3
-----------------------------------------------------------------------------
010105 1/2/1990 7/30/2001
023123 2/1/1998 2/1/2012 5/15/2008
124557 1/15/2001
436567 1/12/2004 1/12/2010 1/12/2012 1/15/2005 1/15/2010
034534 1/1/2002 1/1/2003 1/1/2004 5/1/2002 5/1/2006 5/1/2004
123456 1/1/2002 1/1/2003 5/1/2006
我正在寻找任何一家公司,它的Start1没有相应的End1,或者Start2没有相应的End2,等等。字段中的条目不会完全匹配,但是如果一个有条目,另一个也应该匹配
这可能吗
上述示例中的查询将返回以下内容:
023123 (has Start2 but no End2)
124557 (has Start1 but no End1)
436567 (has Start3 but no End3)
123456 (has Start1 but no End1)
(我只需要公司编号,不需要括号中的文字)
谢谢 假设除了列出的3对之外没有其他列,这可以通过一个简单的
WHERE
子句来完成,该子句测试每列中的非NULL
开始日期以及相应的NULL
结束日期。如果满足三个条件中的任何一个,将返回公司
SELECT DISTINCT Company
FROM Table1
WHERE
(Start1 IS NOT NULL AND End1 IS NULL)
OR (Start2 IS NOT NULL AND End2 IS NULL)
OR (Start3 IS NOT NULL AND End3 IS NULL)
如果您的空字段实际上是空字符串'
而不是NULL
,请替换空字符串,如下所示:
(Start1 <> '' AND End1 = '')
(开始1''和结束1='')
注意,如果
Company
列是唯一键或主键,则不需要DISTINCT
。假设除了列出的3对之外没有其他列,这可以通过一个简单的WHERE
子句来完成,该子句测试每列中的非NULL
开始日期以及相应的NULL
结束日期。如果满足三个条件中的任何一个,将返回公司
SELECT DISTINCT Company
FROM Table1
WHERE
(Start1 IS NOT NULL AND End1 IS NULL)
OR (Start2 IS NOT NULL AND End2 IS NULL)
OR (Start3 IS NOT NULL AND End3 IS NULL)
SELECT t.Company FROM Table1
WHERE t.start1 IS NOT NULL and t.end1 IS NULL or
t.start2 IS NOT NULL and t.end2 IS NULL or
t.start3 IS NOT NULL and t.end3 IS NULL
如果您的空字段实际上是空字符串'
而不是NULL
,请替换空字符串,如下所示:
(Start1 <> '' AND End1 = '')
(开始1''和结束1='')
注意,如果Company
列是唯一键或主键,则不需要DISTINCT
SELECT t.Company FROM Table1
WHERE t.start1 IS NOT NULL and t.end1 IS NULL or
t.start2 IS NOT NULL and t.end2 IS NULL or
t.start3 IS NOT NULL and t.end3 IS NULL
如果上述方法不能解决您的问题,请提供更多信息
SELECT Company FROM yourtable
WHERE Start1 IS NOT NULL AND End1 IS NULL OR
Start2 IS NOT NULL and End2 IS NULL OR
Start3 IS NOT NULL and End3 IS NULL
如果上述方法不能解决您的问题,请提供更多信息。是否有更多的列,您是否可以假定始终有3个开始列和结束列?是否有更多的列,您是否可以假定始终有3个开始列和结束列?是否有其他不需要查询的列,例如地址、状态、,等等。@JeffBrady那么这应该可以帮你。还有其他不需要查询的列,比如地址、州等。@JeffBrady那么这应该可以帮你。
SELECT Company FROM yourtable
WHERE Start1 IS NOT NULL AND End1 IS NULL OR
Start2 IS NOT NULL and End2 IS NULL OR
Start3 IS NOT NULL and End3 IS NULL