sql >> データベース >  >> RDS >> Sqlserver

上級医師の下で働いているすべての下級医師のリストを取得したい、またはその逆のリストを取得したいですか?

    このようなものが役立つかもしれません:

    最初のいくつかのテスト データ:

    DECLARE @DoctorInfo TABLE
                    (
                        doctorId INT,
                        fistName VARCHAR(100),
                        seniorDoctorId INT
                    )
    
    INSERT INTO @DoctorInfo
    VALUES
        (34,'ABC',0),
        (35,'XYZ',34),
        (36,'bsd',34),
        (37,'dfdf',35),
        (38,'dffdg',0)
    

    クエリは次のようになります:

    DECLARE @doctorId INT
    SET @doctorId=35
    ;WITH CTE(doctorId,seniorDoctorId,fistName)
    AS
    (
        SELECT
            DoctorInfo.doctorId,
            DoctorInfo.seniorDoctorId,
            DoctorInfo.fistName
        FROM
            @DoctorInfo AS DoctorInfo
        WHERE
            [email protected]
        UNION ALL
        SELECT
            DoctorInfo.doctorId,
            DoctorInfo.seniorDoctorId,
            DoctorInfo.fistName
        FROM
            @DoctorInfo AS DoctorInfo
            JOIN CTE
                ON DoctorInfo.seniorDoctorId=CTE.doctorId
    )
    SELECT
        *
    FROM
        CTE
    

    望ましい出力を得るために、seniorDoctorId を使用する必要はありません すでに親子関係があるためです。

    こちら の例を参照してください



    1. utf8mb4_unicode_ciとutf8mb4_bin

    2. JPAおよびHibernateを使用して読み取り専用トランザクションと読み取り/書き込みトランザクションを分割する方法

    3. htaccessリダイレクトの不完全なタスク

    4. ログインしたユーザーは、しばらくするとログアウトします