【问题标题】:How to select specific column names in SQL Server如何在 SQL Server 中选择特定的列名
【发布时间】:2013-02-27 01:08:45
【问题描述】:

这是我之前关于如何在 SQL Server 中迭代字符串的问题:

现在如何具体选择列名? 这是我选择列的代码:

SELECT 'Field '+CAST(ROW_NUMBER() OVER (ORDER BY ordinal_position) AS varchar(5))+': ' + 
COLUMN_NAME
FROM information_schema.columns 
WHERE table_Name = 'SystemDefined' and table_schema = 'schemaAsset'

这是输出:

Field 1: Asset_No
Field 2: AssetCategory
Field 3: AssetClassification
Field 4: PurchaseType
Field 5: Department
Field 6: RespPerson
Field 7: Status
Field 8: Location

这是我在选择特定列名时想要的输出:

Field 1: Asset_No
Field 2: AssetCategory
Field 3: AssetClassification
Field 4: PurchaseType
Field 5: Department
Field 6: RespPerson
Field 7: Status

【问题讨论】:

    标签: sql sql-server select columnname


    【解决方案1】:

    如何使用NOT IN,您可以在WHERE 子句中使用它来指定另一个条件。

    SELECT...
    FROM..
    WHERE  table_Name = 'SystemDefined' AND 
           table_schema = 'schemaAsset' AND
           COLUMN_NAME NOT IN ('Status',....) --  specify the list of names you
                                              -- don't want to show
    

    【讨论】:

    • 啊,先生,我也可以用,对不起,我是新手,谢谢先生:)
    【解决方案2】:

    除非我遗漏了什么,否则您可以使用 WHERE 子句排除您不想要的列:

    SELECT 'Field '
      + CAST(ROW_NUMBER() OVER (ORDER BY ordinal_position) AS varchar(5))+': ' 
      + COLUMN_NAME
    FROM information_schema.columns 
    WHERE table_Name = 'SystemDefined' 
      and table_schema = 'schemaAsset'
      and COLUMN_NAME <> 'Location'
    

    如果你有多个列,那么你可以使用NOT IN ('Location', 'etc')

    【讨论】:

    • 是的,我忘记使用这个了,因为我认为它不会起作用,因为我第一次尝试它时会出现错误,也许只是语法错误,无论如何谢谢先生:)
    【解决方案3】:

    推荐sys.columns 而不是INFORMATION_SCHEMA (here's why)。

    SELECT 'Column ' 
      + CONVERT(VARCHAR(5), ROW_NUMBER() OVER (ORDER BY column_id))
      + ': ' + name
    FROM sys.columns
    WHERE [object_id] = OBJECT_ID(N'schemaAsset.SystemDefined')
    AND name NOT IN ('Location' /* , ... other columns ... */)
    ORDER BY column_id; -- because you never know how SQL Server might order
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多