webentwicklung-frage-antwort-db.com.de

Ermitteln Sie die Anzahl der Spalten in einer Tabelle

Es ist möglich, die Anzahl der Zeilen in einer Tabelle zu ermitteln:

select count(*) from tablename

Kann man die Anzahl der Spalten in einer Tabelle ermitteln?

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

JDBC in Java verwenden:

    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

Oder verwenden Sie die 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

Es ist etwas spät geworden, aber bitte nehmen Sie es mir ab ...

Im Editor (Neue Abfrage) wählen Sie mit das Datenbankobjekt aus es kann auch eine Tabelle sein, wenn Sie die Tastenkombination Alt + F1 verwenden. Wir erhalten alle Informationen des Objekts und ich denke, es wird gelöst auch dein Problem.

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

Hinweis: Your_table_nale wird durch Ihren Tabellennamen ersetzt 

3
Rahul Yadav

Nun, ich habe die Antwort von Nathan Koop ausprobiert und es hat für mich nicht funktioniert. Ich habe es folgendermaßen geändert und es hat funktioniert:

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

Es hat auch nicht funktioniert, wenn ich USE 'database_name' oder WHERE table_catalog = 'database_name' AND table_name' = 'table_name' eingebe. Ich werde tatsächlich froh sein, warum. 

2
ambodi

Es ist möglich, die Anzahl der Spalten in einer Tabelle zu ermitteln, indem Sie 3 einfache Zeilen PHP Code verwenden.

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

In diesem Fall würde $num die Nummer von columns in einer gegebenen Tabelle zurückgeben.

Hoffentlich würde es anderen helfen.

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

Kann folgende SQL-Anweisung verwenden:

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

Abfrage, um die Anzahl der Spalten in einer Tabelle zu zählen:

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

Ersetzen Sie Tabellenname durch den Namen der Tabelle, deren Gesamtanzahl der Spalten Sie zurückgeben möchten.

1
Deepak

Da alle Antworten COUNT() verwenden, können Sie auch MAX() verwenden, um die Anzahl der Spalten in einer bestimmten Tabelle als zu ermitteln

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

Siehe The INFORMATION_SCHEMA COLUMNS Table

0
Sami

Eine MySQL-Antwort, die aus dem MSDN-Beispiel für MySqlDataReader.GetValues ​​ etwas angepasst wurde - /:

//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]);
}

Mit MySqlDataReader.FieldCount können Sie die Anzahl der Spalten in der abgefragten Zeile abrufen.

0
delliottg

Die folgende Abfrage findet wie Spalten in der Tabelle: -

 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;

Dieser hat für mich gearbeitet.

0
Sumesh Es