Cómo seleccionar los nombres de columna en SQL Server

Aquí está mi pregunta anterior sobre cómo recorrer una cadena en SQL Server:

Ahora ¿cómo puedo seleccionar específicamente los nombres de columna?
aquí está mi código para la selección de columnas:

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'

Aquí está el resultado:

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

Esta la salida quiero que cuando la selección específica de los nombres de columna:

Field 1: Asset_No
Field 2: AssetCategory
Field 3: AssetClassification
Field 4: PurchaseType
Field 5: Department
Field 6: RespPerson
Field 7: Status
InformationsquelleAutor | 2013-02-27

3 Kommentare

  1. 3

    Cómo sobre el uso de NOT IN que se puede utilizar en el WHERE cláusula que especifique de otra condición.

    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
    • Ah sí sir puedo usar que demasiado, lo siento, soy un novato, gracias señor 🙂
  2. 1

    A menos que me haya perdido algo, puedes usar un WHERE cláusula para excluir la columna(s) que usted no quiere:

    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'

    Si usted tiene varias columnas, entonces usted puede utilizar NOT IN ('Location', 'etc')

    • Sí, me olvidé de éste a utilizar, porque pensé que no va a funcionar porque la primera vez que lo intente hay errores, tal vez sólo error de sintaxis, de todos modos gracias señor 🙂
  3. 0

    Recomendamos sys.columns en lugar de INFORMATION_SCHEMA (he aquí por qué).

    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

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea