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

UNIONS का उपयोग किए बिना MySQL के साथ कॉलम में एक पंक्ति को स्थानांतरित करें?

मैंने इसे The Art ofSQL किताब से निकाला है। , पृष्ठ 284-286:

मान लें कि आपकी तालिका का नाम foo है ।

सबसे पहले, pivot . नामक एक टेबल बनाएं :

CREATE Table pivot (
  count int
);

उस तालिका में उतनी ही पंक्तियाँ डालें जितने स्तंभ हैं जिन्हें आप foo . में पिवट करना चाहते हैं . चूँकि आपके पास foo . में तीन कॉलम हैं जिसे आप पिवट करना चाहते हैं, पिवट तालिका में तीन पंक्तियां बनाएं:

insert into pivot values (1);
insert into pivot values (2);
insert into pivot values (3);

अब foo . के बीच एक कार्टेशियन जॉइन करें और pivot , CASE . का उपयोग करके गिनती के आधार पर सही कॉलम चुनने के लिए:

SELECT foo.id, Case pivot.count
  When 1 Then cat
  When 2 Then one_above
  When 3 Then top_level
End Case
FROM foo JOIN pivot;

यह आपको वह देना चाहिए जो आप चाहते हैं।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MySQL को कैसे सुरक्षित करें:भाग एक

  2. Django के बाहर Django डेटाबेस परत का उपयोग करना?

  3. जन्म तिथि के आधार पर आयु की गणना करें

  4. php . के साथ एसक्यूएल इंजेक्शन हमला

  5. MYSQLI - जहां सरणी में