SQL Server:如何使列成为可选列?

SQL Server:如何使列成为可选列?,sql,sql-server,Sql,Sql Server,我在SQL Server 2012中有一个存储过程,用于搜索数据,然后将其插入表中。我还希望在不创建重复项的情况下对插入顺序进行排序和决定。不应插入我要排序的列,但我不知道是否可以将列设为可选列 这是我的SQL: INSERT INTO Plans (personID, Title, CreatedOn) SELECT DISTINCT P.personID, A.title, A.CreatedOn, P.Appoint

我在SQL Server 2012中有一个存储过程,用于搜索数据,然后将其插入表中。我还希望在不创建重复项的情况下对插入顺序进行排序和决定。不应插入我要排序的列,但我不知道是否可以将列设为可选列

这是我的SQL:

INSERT INTO Plans (personID, Title, CreatedOn) 
    SELECT DISTINCT
        P.personID,
        A.title,
        A.CreatedOn,
        P.AppointmentTime    -- I want to sort by this column
    ... Join conditions
    ... ORDER BY P.AppointmentTime DESC

代码工作得很好我唯一的问题是如何从插入中排除
p.AppointmentTime
列?因为我使用的是distinct,所以我必须将它放在选择列表中。任何建议都很好。

您可以使用
分组方式

INSERT INTO Plans (personID, Title, CreatedOn) 
    Select distinct P.personID, A.title, A.CreatedOn
    from  ... Join conditions
    group by P.personID, A.title, A.CreatedOn
    order by max(P.AppointmentTime) desc

如果您只需从选择列表中删除该字段,会发生什么情况呢?如果是,只需从选择列表中删除列名,否则将抛出错误