Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

किसी अन्य तालिका के स्तंभ नामों के आधार पर एक तालिका से स्तंभों का चयन करें

मेरा पिछला जवाब mysql के लिए था। चूंकि तब से प्रश्न पर टैग अपडेट किया गया है, यहां sql-server-2008 के लिए क्वेरी है .

table_levels . में मानों से स्तंभों की सूची बनाएं , अंतिम , remove को हटा दें , आपको table_results . से परिणाम प्राप्त करने के लिए एक क्वेरी स्ट्रिंग बनाएं , और फिर निष्पादित करें।

DECLARE @listStr varchar(MAX) = ( select selectColumnName + ',' from table_levels where level = 1 for xml path(''))
DECLARE @query varchar(MAX) = 'SELECT ' + LEFT(@listStr, LEN(@listStr)-1) + ' FROM table_results'
execute(@query)

sql सर्वर के लिए डेमो

पिछला उत्तर। mssql . के लिए काम करता है

देखें mysql के लिए डेमो

GROUP_CONCAT का उपयोग करें table_levels . में मानों से एक स्ट्रिंग बनाने के लिए और फिर table_results . से आपको परिणाम प्राप्त करने के लिए एक क्वेरी स्ट्रिंग बनाएं

SET @listStr = ( SELECT GROUP_CONCAT(selectColumnName) FROM table_levels where level = 1);
SET @query := CONCAT('SELECT ', @listStr, ' FROM table_results');
PREPARE STMT FROM @query;
EXECUTE STMT;


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. एसएसआईएस में इंक्रीमेंटल लोड के लिए सबसे अच्छा तरीका

  2. कुछ क्षेत्रों में डुप्लीकेट खोजने के लिए कथन का चयन करें

  3. SQL सर्वर में PARSE() बनाम TRY_PARSE():क्या अंतर है?

  4. पैरामीटर के साथ Database.ExecuteSqlCommand का उपयोग करने के लिए सही सिंटैक्स क्या है?

  5. DatedIFF () SQL सर्वर में गलत परिणाम देता है? इसे पढ़ें।