SQL Server 2014 列间表 2 中的查找值
SQL Server 2014 Lookup value in Table2 between columns
我有两张桌子。在 Table A 中,除了其他值外,我还有一个 "StartDate"。我还有一列 "TimeZone"。在 Table B 中,我有好几年的 TimeZone、StartDST、EndDST (DST=DaylightSavingTime)。
我想检查 - StartDate 是否在 B.StartDST 和 B.EndDST 之间的 Table B 中。如果不是...它应该给我 0 else 1.
TimeZone在B中存在多个Time
FROM DutyList A
WHERE NOT EXISTS (SELECT 1
FROM TimeZoneDST B
WHERE A.StartDuty between B.DSTstart and B.DSTend))
这并没有给我所有的记录。我需要 DutyList A 中的所有记录。
我需要一个额外的列 "DSTexists" 0 或 1 - 如果 StartDuty 在 Table B 中。
我正在使用 SQL Server 2014。
SELECT A.*,
CASE WHEN EXISTS (SELECT 1 FROM TimeZoneDST B
WHERE A.StartDuty between B.DSTstart and B.DSTend)
THEN 1
ELSE 0
END as DSTexists
FROM DutyList A;
我有两张桌子。在 Table A 中,除了其他值外,我还有一个 "StartDate"。我还有一列 "TimeZone"。在 Table B 中,我有好几年的 TimeZone、StartDST、EndDST (DST=DaylightSavingTime)。
我想检查 - StartDate 是否在 B.StartDST 和 B.EndDST 之间的 Table B 中。如果不是...它应该给我 0 else 1.
TimeZone在B中存在多个Time
FROM DutyList A
WHERE NOT EXISTS (SELECT 1
FROM TimeZoneDST B
WHERE A.StartDuty between B.DSTstart and B.DSTend))
这并没有给我所有的记录。我需要 DutyList A 中的所有记录。 我需要一个额外的列 "DSTexists" 0 或 1 - 如果 StartDuty 在 Table B 中。 我正在使用 SQL Server 2014。
SELECT A.*,
CASE WHEN EXISTS (SELECT 1 FROM TimeZoneDST B
WHERE A.StartDuty between B.DSTstart and B.DSTend)
THEN 1
ELSE 0
END as DSTexists
FROM DutyList A;