当没有用 EXISTS 引入子查询时,在选择列表中只能指定一个表达式。

2025-03-24 05:03:17
推荐回答(1个)
回答1:

INSERT  INTO [AviationAccidentDatabase].[dbo].[AccidentInformation]
        ( [Accident_PKID] ,
          [Date] ,
          [Location] ,
          [EventType] ,
          [AirplaneDamage] ,
          [Departure] ,
          [Destination] ,
          [FlightPhase] ,
          [AccidentCause] ,
          [AccidentNarrative]
        )
SELECT  NEWID() ,
          '2002年01月04日' ,
          'AA' ,ClassCode AS [EventType] ,
                    ( SELECT    ClassCode
                      FROM      dbo.BaseData
                      WHERE     ClassID = 2
                                AND ClassName = 'AA'
                    ) AS [AirplaneDamage] ,
                    ( SELECT    Airport_PKID
                      FROM      Airportinformation
                      WHERE     AirportName = 'AA'
                    ) AS [Departure] ,
                    ( SELECT    Airport_PKID
                      FROM      Airportinformation
                      WHERE     AirportName = 'AA'
                    ) AS [Destination] ,
                    ( SELECT    ClassCode
                      FROM      dbo.BaseData
                      WHERE     ClassID = 5
                                AND ClassName = 'AA'
                    ) AS [FlightPhase] ,
                    ( SELECT    ClassCode
                      FROM      dbo.BaseData
                      WHERE     ClassID = 3
                                AND ClassName = 'AA'
                    ) AS [AccidentCause],
          'AA'
            FROM    dbo.BaseData
            WHERE   ClassID = 4
                    AND ClassName = 'AA'
                    GO