我有3个表BusStop,BusRoute和Stop_Route(用于M-2-M关系)。一些停靠点没有关联(路线),我需要用位值1或0更新BusStop表中的每条记录,这取决于它是否有关联。我有一个查询来选择没有关系的所有停靠站:

SELECT
    BusStop.StopId
FROM
    BusStop
    LEFT OUTER JOIN BusStop_BusRoute
    ON BusStop.StopId = BusStop_BusRoute.StopId
WHERE
    BusStop_BusRoute.StopId IS NULL


但我不清楚如何根据此结果来增加价值。我已经阅读了有关CURSOR和CASE WHEN语句的信息,但是我仍然不知道如何在我的情况下应用它们。我需要在其中插入该值的Bit的StopStatus列类型。

最佳答案

UPDATE BusStop
SET StopStatus =
    CASE
        WHEN BusStop_BusRoute.StopID IS NULL THEN 0
        ELSE 1
    END
FROM
    BusStop
    LEFT JOIN BusStop_BusRoute
    ON BusStop.StopId = BusStop_BusRoute.StopId

关于sql - 如果行有关系如何插入BIT值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12492868/

10-09 15:24