किसी तालिका में स्तंभों की संख्या ज्ञात करें


122

तालिका में पंक्तियों की संख्या ज्ञात करना संभव है:

select count(*) from tablename

क्या किसी तालिका में स्तंभों की संख्या ज्ञात करना संभव है?

जवाबों:


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

1
हाय मैं स्टैंड के तहत नहीं कर सकते, यहाँ जानकारी आप मुझे क्वेरी एक बार फिर से .. तालिका नाम = पोस्ट कॉलम = PostingID, PostingDate, शरीर दे कृपया कर सकते हैं
praveenjayapal

2
जब तक मैं भ्रमित नहीं हूं, आप देख रहे हैं कि तालिका में कितने कॉलम हैं। यदि आप निम्नलिखित क्वेरी को निष्पादित करते हैं, तो यह 3 वापस आ जाएगी (केवल कॉलम को पोस्टिंगआईड, पोस्टिंगडेट और बॉडी) का चयन करें चुनाव (इंप्रूवमेंट_SCHEMA.COLUMNS कहाँ से प्राप्त करें?) = 'पोस्ट'
नाथन कोप

10
मुझे लगता है कि आपको "table_schema" को "TABLE_CATALOG" से बदलने की आवश्यकता है, चर 'database_name' के लिए
हार्वे डारवे

MySQL भूमि में (प्रश्न में टैग किया गया) ... एक MySQL ANSI SQL और हमेशा के databaseबराबर हैschematable_catalogdef
स्टीव बुज़ोनास

1
"table_catalog" को "TABLE_SCHEMA" में बदलने की आवश्यकता है
चमारा

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

1
यह जवाब पूरी तरह से काम करता है, कम से कम Microsoft SQL सर्वर के साथ
एंटोनियो सेरानो

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

नोट: Your_table_name को आपके वास्तविक तालिका नाम से बदल दिया जाना चाहिए


6

जावा में JDBC का उपयोग करना:

    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);

2
यह एक अच्छा सामान्य दृष्टिकोण (RDBMS अज्ञेयवादी) है। मैं केवल क्वेरी को बदलने का सुझाव देता हूं SELECT * FROM sample2 WHERE 1=2। इस तरह, आप स्कीमा प्राप्त कर सकते हैं लेकिन कोई डेटा नहीं, जो अनावश्यक ओवरहेड जोड़ सकता है।
Cascader

5

इसकी थोड़ी देर हो गई है, लेकिन कृपया इसे मुझसे ले लो ...

डेटाबेस ऑब्जेक्ट का चयन करके संपादक (नई क्वेरी) में यह एक तालिका भी हो सकती है, अगर हम शॉर्टकट कुंजी Alt + F1 का उपयोग करते हैं तो हमें ऑब्जेक्ट की सभी जानकारी मिल जाएगी और मुझे लगता है कि आपकी समस्या का भी समाधान होगा।



4

खैर मैंने नाथन कोप के उत्तर की कोशिश की और यह मेरे लिए काम नहीं आया। मैंने इसे निम्न में बदल दिया और इसने काम किया:

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

यह भी काम नहीं किया अगर मैं डाल दिया USE 'database_name'और न ही WHERE table_catalog = 'database_name' AND table_name' = 'table_name'। मुझे वास्तव में यह जानकर खुशी होगी कि क्यों।


USE database_nameडिफ़ॉल्ट डेटाबेस सेट करता है, इसलिए आपको अपने द्वारा जारी किए गए किसी भी बयान में तालिका के नाम को अर्हता प्राप्त करने की आवश्यकता नहीं है। यहाँ आप columnsटेबल का नाम क्वालिफ़ाइ करते हुए यह कहते हैं कि यह info_schema के भीतर है। table_catalogविशुद्ध रूप से अन्य डीबीएस के साथ संगतता के उद्देश्य के लिए mysql में मौजूद है यह समान नहीं है table_schema- उस उत्तर के तहत टिप्पणियां देखें।
पॉल कैंपबेल

3

या 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

INFORMATION_SCHEMA.COLUMNS में से COUNT (*) चुनें TABLE_NAME = '<YourTABLENAME>'
रूडी

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

2

PHP कोड की 3 सरल रेखाओं का उपयोग करके किसी तालिका में स्तंभों की संख्या का पता लगाना संभव है।

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

$numcolumnsइस मामले में दिए गए टेबल पर नंबर लौटाएगा ।

उम्मीद है, यह दूसरों की मदद करेगा।


1

तालिका में स्तंभों की संख्या गिनने की क्वेरी:

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

तालिका के नाम के साथ टैबलेन का नाम बदलें, जिसके कुल कॉलम आप चाहते हैं।


क्या यह MYSQL के लिए भी लागू है, क्योंकि मैं इसे निष्पादित नहीं कर सकता
हुसैन अख्तर वाहिद 'घोरी'

1

निम्नलिखित sql स्टेटमेंट का उपयोग करके प्राप्त कर सकते हैं:

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

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

उपर्युक्त उल्लेख SQL सर्वर डेटाबेस में एक निर्दिष्ट तालिका में स्तंभों की संख्या प्राप्त करने के लिए काम करना चाहिए।
अनिल गोपलानी

1

db2 'describe table "SCHEMA_NAME"."TBL_NAME"'


1
हालांकि यह मूल प्रश्न को हल कर सकता है, लेकिन विवरण को शामिल करना सबसे अच्छा है ताकि हम जान सकें कि क्या चल रहा है।
टेडिनोज़

1
कृपया केवल एक उत्तर के रूप में कोड को पोस्ट न करें, लेकिन इसमें यह भी शामिल है कि आपका कोड क्या करता है और यह कैसे प्रश्न की समस्या को हल करता है। स्पष्टीकरण के साथ उत्तर आमतौर पर उच्च गुणवत्ता वाले होते हैं और अपवोट को आकर्षित करने की अधिक संभावना होती है।
सूरज कुमार

0

निम्नलिखित क्वेरी तालिका में कॉलम कैसे पाती है: -

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

0

MySQL का उत्तर MySqlDataReader.GetValues ​​के लिए MSDN उदाहरण से थोड़ा अनुकूलित है :

//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करने से आप पंक्ति में स्तंभों की संख्या को पुनः प्राप्त कर पाएंगे।


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

यह एक मेरे लिए काम किया।


0

चूंकि सभी उत्तर उपयोग कर रहे हैं 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


-1

यहां बताया गया है कि आप पायथन 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()))

स्रोत

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.