2009-03-18 7 views
76

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

select count(*) from tablename 

Ist es möglich, die Anzahl der Spalten in einer Tabelle zu finden?

Antwort

138
SELECT COUNT(*) 
    FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_catalog = 'database_name' -- the database 
    AND table_name = 'table_name' 
+1

Hallo ich unter schrägem Stand, hier die Informationen können Sie sich bitte die Abfrage erneut .. Tabellenname = post Spalten = Veröffentlicher , PostingDate, Body – praveenjayapal

+2

Sofern ich nicht verwirrt bin, suchen Sie, wie viele Spalten in der Tabelle sind. Wenn Sie die folgende Abfrage ausführen, wird es zurückgeben 3 (vorausgesetzt, die einzigen Säulen sind Veröffentlicher, PostingDate und Body) SELECT COUNT (*) FROM INFORMATION_SCHEMA.COLUMNS WHERE table_name = 'post' –

+10

Ich glaube, Sie ersetzen müssen " table_schema "oben mit" TABLE_CATALOG "für die Variable 'datenbankname' –

3

Oder nutzen 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

Es ist schon etwas spät, aber bitte es von mir nehmen ...

Im Editor (New Query) durch das Datenbankobjekt auswählen kann es auch eine Tabelle sein, wenn wir den Tastenkürzel Alt + F1 verwenden, erhalten wir alle Informationen des Objekts und ich denke, wird auch Ihr Problem lösen.

2

Abfrage der Anzahl der Spalten in einer Tabelle zählen:

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

Ersetzen Tabellennamen mit dem Namen der Tabelle, deren Gesamtzahl der Spalten zurückgegeben werden soll.

+0

ist es auch für MYSQL anwendbar, weil ich es nicht ausführen kann –

4
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); 
+0

Keine Notwendigkeit, Systemtabelle abzufragen. Verwenden Sie direkte Funktion wie oben ... – Himanshu

+2

Dies ist ein guter generischer Ansatz (RDBMS agnostic). Ich schlage nur vor, die Abfrage in 'SELECT * FROM sample2 WHERE 1 = 2' zu ändern. Auf diese Weise können Sie das Schema, aber keine Daten abrufen, wodurch unnötiger Overhead entsteht. – Cascader

0

Nach Abfrage findet, wie Spalten in der Tabelle: -

SELECT COUNT(COLUMN_NAME) FROM USER_TAB_COLUMNS 
WHERE TABLE_NAME = 'TableName'; 
1

Kann folgende SQL-Anweisung erhalten mit:

select count(*) Noofcolumns from SYSCOLUMNS where id=(select id from SYSOBJECTS where name='table_name') 
1
SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo' 
AND TABLE_NAME = 'table_name' 
0

Eine Antwort MySQL leicht von der MSDN example for MySqlDataReader.GetValues angepasst:

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

Mithilfe von MySqlDataReader.FieldCount können Sie die Anzahl der Spalten in der Zeile abfragen, die Sie abgefragt haben.

1
SELECT count(*) FROM information_schema.`COLUMNS` C 
WHERE table_name = 'your_table_name' 
AND TABLE_SCHEMA = "your_db_name" 
+0

Ich benutze dies, es funktioniert wirklich für MySQL –

23
SELECT COUNT(COLUMN_NAME) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_CATALOG = 'Database name' 
    AND TABLE_SCHEMA = 'dbo' 
    AND TABLE_NAME = 'table name' 
+0

Diese Antwort sollte als Antwort akzeptiert werden. – Asad

+1

Diese Antwort funktioniert perfekt, zumindest mit Microsoft SQL Server –

+0

Diese Antwort funktioniert gut. – ZeeProgrammer

2

Es ist möglich, die Anzahl der Spalten in einer Tabelle unter Verwendung von 3 einfachen Codezeilen zu finden.

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

$num würde die Zahl der columns auf einer bestimmten Tabelle in diesem Fall zurück.

Hoffentlich würde es anderen helfen.

2

Nun, ich versuchte Nathan Koop's Antwort und es hat nicht für mich funktioniert. Habe ich es zu folgenden und es hat funktioniert:

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

Es ist auch nicht funktioniert, wenn ich USE 'database_name' noch WHERE table_catalog = 'database_name' AND table_name' = 'table_name' setzen. Ich bin wirklich froh zu wissen, warum.

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

Hinweis: Your_table_nale ersetzen durch Ihren Tabellennamen

0
SELECT COUNT(*) 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE 
    TABLE_NAME = 'table_name'; 
+0

Die oben genannten sollten funktionieren, um die Anzahl der Spalten in einer angegebenen Tabelle in SQL Server-Datenbank abzurufen. –

+0

Dies ist nur ein Duplikat der angenommenen Antwort –

Verwandte Themen