web-dev-qa-db-fra.com

Trouver le nombre de colonnes dans un tableau

Il est possible de trouver le nombre de lignes dans un tableau:

select count(*) from tablename

Est-il possible de trouver le nombre de colonnes dans un tableau?

95
praveenjayapal
SELECT COUNT(*)
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE table_catalog = 'database_name' -- the database
   AND table_name = 'table_name'
168
Nathan Koop
SELECT COUNT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_CATALOG = 'Database name' 
    AND TABLE_SCHEMA = 'dbo' 
    AND TABLE_NAME = 'table name'
34
kavitha

Utilisation de JDBC en Java:

    String quer="SELECT * FROM sample2";

    Statement st=con.createStatement();
    ResultSet rs=st.executeQuery(quer);
    ResultSetMetaData rsmd = rs.getMetaData();
    int NumOfCol=0;
    NumOfCol=rsmd.getColumnCount();
    System.out.println("Query Executed!! No of Colm="+NumOfCol);
4
Himanshu

Ou utilisez les sys.columns

--SQL 2005
SELECT  *
FROM    sys.columns
WHERE   OBJECT_NAME(object_id) = 'spt_values'
-- returns 6 rows = 6 columns

--SQL 2000
SELECT  *
FROM    syscolumns
WHERE   OBJECT_NAME(id) = 'spt_values'
-- returns 6 rows = 6 columns

SELECT  *
FROM    dbo.spt_values
    -- 6 columns indeed
3
jerryhung

C'est un peu tard, mais s'il te plaît, enlève-le-moi ...

Dans l'éditeur (Nouvelle requête) de sélectionnez l'objet de la base de données il peut aussi s'agir d'une table, si vous utilisez le raccourci clavier Alt + F1 nous obtiendrons toutes les informations de l'objet et je pense que cela résoudra votre problème aussi.

3
itb564
SELECT count(*)
FROM information_schema.columns
WHERE table_name = 'Your_table_nale';

Remarque: Votre_table_nale remplace par votre nom de table 

3
Rahul Yadav

J'ai essayé la réponse de Nathan Koop et ça n'a pas fonctionné pour moi. Je l'ai changé comme suit et cela a fonctionné:

SELECT COUNT(*)
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'table_name'

Cela ne fonctionnait pas non plus si je mettais USE 'database_name' ni WHERE table_catalog = 'database_name' AND table_name' = 'table_name'. En fait, je serai heureux de savoir pourquoi. 

2
ambodi

Il est possible de trouver le nombre de colonnes dans un tableau en utilisant simplement 3 lignes de code PHP.

$sql="SELECT * FROM table";
$query=mysqli_query($connect_dude,$sql);    
$num=mysqli_num_fields($query);

$num renverrait le nombre de columns sur une table donnée dans ce cas.

Espérons que cela aiderait les autres.

2
Salim Khan
SELECT count(*) FROM information_schema.`COLUMNS` C
WHERE table_name = 'your_table_name'
AND TABLE_SCHEMA = "your_db_name"
1
Ketul Rathod
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table_name'
1
abhid89

Peut obtenir en utilisant l'instruction SQL suivante:

select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name')
1
Pranav Shah

Requête pour compter le nombre de colonnes dans une table:

select count(*) from user_tab_columns where table_name = 'tablename';

Remplacez nom_table par le nom de la table dont vous souhaitez renvoyer le nombre total de colonnes.

1
Deepak

Étant donné que toutes les réponses utilisent COUNT(), vous pouvez également utiliser MAX() pour obtenir le nombre de colonnes d'une table spécifique.

_SELECT MAX(ORDINAL_POSITION) NumberOfColumnsInTable
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_CATALOG = 'YourDatabaseNameHere'
      AND 
      TABLE_SCHEMA = 'YourSchemaNameHere'
      AND
      TABLE_NAME = 'YourTableNameHere';
_

Voir The INFORMATION_SCHEMA COLUMNS Table

0
Sami

Une réponse MySQL légèrement adaptée de l'exemple MSDN pour MySqlDataReader.GetValues ​​ :

//assumes you've already created a connection, opened it, 
//and executed a query to a reader

while(reader.Read())
{
    Object[] values = new Object[reader.FieldCount];
    int fieldCount = reader.GetValues(values);

    Console.WriteLine("\nreader.GetValues retrieved {0} columns.",   fieldCount);
    for (int i = 0; i < fieldCount; i++)
        Console.WriteLine(values[i]);
}

Utiliser MySqlDataReader.FieldCount vous permettra de récupérer le nombre de colonnes dans la ligne que vous avez interrogée.

0
delliottg

La requête suivante trouve comment les colonnes dans la table: -

 SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS
 WHERE TABLE_NAME = 'TableName';
0
Naveen kumar. K
SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
   TABLE_NAME = 'table_name';
0
Aneel Goplani

db2 'describe select * from "SCHEMA_NAME"."TBL_NAME"'

0
anask
SELECT TABLE_SCHEMA
    , TABLE_NAME
    , number = COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS
GROUP BY TABLE_SCHEMA, TABLE_NAME;

Celui-ci a fonctionné pour moi.

0
Sumesh Es