How to exclude a column from SELECT query?

后端 未结 5 1284
借酒劲吻你
借酒劲吻你 2020-12-03 23:01

I have 100 columns in a table and I want to list 99 columns except a particular one.

How to exclude that columns name?

5条回答
  •  难免孤独
    2020-12-03 23:45

    Try this.

    DROP TABLE #MY_TEMP_TABLE
    
    CREATE TABLE #MY_TEMP_TABLE
    (
        Column_1        int             NULL,
        Column_2        varchar(10)     NULL,
        Column_3        datetime        NULL
    )
    
    INSERT INTO #MY_TEMP_TABLE(Column_1, Column_2, Column_3)
            SELECT  1, 'a', GETDATE()
    UNION   SELECT  2, 'b', GETDATE()
    UNION   SELECT  3, 'c', GETDATE()
    UNION   SELECT  4, 'd', GETDATE()
    
    DECLARE @dSQL nvarchar(1000)
    
    SELECT  @dSQL = 'SELECT TOP 10 '
    
    SELECT  @dSQL = @dSQL + LEFT(nst.ColumnList, LEN(nst.ColumnList)-1) --AS 'List'
    FROM    (SELECT  so.id
            FROM    TEMPDB..SYSOBJECTS so
            WHERE   so.name LIKE '#MY_TEMP_TABLE%'
            AND     so.type = 'u') so
    CROSS APPLY (SELECT sc.Name + ', '
                FROM    TEMPDB..SYSCOLUMNS sc
                WHERE   sc.id = so.id
                AND     sc.colid <> 3
                FOR XML PATH('')) nst
                (ColumnList)
    
    SELECT  @dSQL = @dSQL + ' FROM #MY_TEMP_TABLE'
    
    EXEC sp_executesql @dSQL
    

提交回复
热议问题