Найти количество столбцов в таблице

В таблице можно найти количество строк:

select count(*) from tablename

Можно ли найти количество столбцов в таблице?

Ответ 1

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

Ответ 2

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

Ответ 3

Использование JDBC в 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

Или используйте 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

Ответ 5

Его было немного поздно, но, пожалуйста, возьми его у меня...

В редакторе (Новый запрос) выберите объект базы данных также может быть таблица, если мы используем ярлык Alt + F1, мы получим все информация об объекте, и я думаю, что также решит вашу проблему.

Ответ 6

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

Примечание. Вместо параметра your_table_nale имя таблицы

Ответ 7

SELECT COUNT(COLUMN_NAME) FROM INFORMATION_SCHEMA.COLUMNS WHERE 
TABLE_CATALOG = 'database_name' AND TABLE_SCHEMA = 'dbo'
AND TABLE_NAME = 'table_name'

Ответ 8

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

Ответ 9

Можно найти количество столбцов в таблице, просто используя 3 простые строки кода PHP.

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

$num вернет количество columns в данной таблице.

Надеюсь, это поможет другим.

Ответ 10

Хорошо, я попробовал ответить Натан Куп, и это не сработало для меня. Я изменил его на следующее, и это сработало:

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

Он также не работал, если я положил USE 'database_name' и WHERE table_catalog = 'database_name' AND table_name' = 'table_name'. Я действительно буду рад узнать, почему.

Ответ 11

Запрос для подсчета количества столбцов в таблице:

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

Замените имя_таблицы на имя таблицы, общее число столбцов, которое вы хотите вернуть.

Ответ 12

Можно использовать следующую инструкцию sql:

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

Ответ 13

Следующий запрос находит, как столбцы в таблице: -

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

Ответ 14

Ответ MySQL немного адаптировался к Пример MSDN для 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]);
}

Использование MySqlDataReader.FieldCount позволит вам получить количество столбцов в запрошенной строке.

Ответ 15

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

Ответ 16

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

Этот работал для меня.

Ответ 17

Поскольку во всех ответах используется COUNT(), вы также можете использовать MAX() чтобы получить число столбцов в конкретной таблице как

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

Смотрите The INFORMATION_SCHEMA COLUMNS Table

Ответ 18

Вот как вы можете получить количество столбцов таблицы, используя Python 3, sqlite3 и оператор pragma:

con = sqlite3.connect(":memory:")    
con.execute("CREATE TABLE tablename (d1 VARCHAR, d2 VARCHAR)")
cur = con.cursor()
cur.execute("PRAGMA table_info(tablename)")
print(len(cur.fetchall()))

Источник