mysql - How to get result set like Oracle lag function -


मेरे पास mysql टेबल है जो संरचना के नीचे है

  | कोला | ColB | ColC | + ------------------ + ------ + | ए | Xxx | 40 | | ए | वाई वाई वाई | 40 | | ए | ज़ज़ | 40 | | बी | एबीसी | 50 | | बी | बीसीए | 50 | | सी | टीटीटी | 60 | | सी | एफएफएफ | 60 |   

मुझे नीचे की तरह आउटपुट की आवश्यकता है

  | कोला | ColB | ColC | + ------------------ + ------ + | ए | Xxx | 40 | | | वाई वाई वाई | | | | ज़ज़ | | | बी | एबीसी | 50 | | | बीसीए | | | सी | टीटीटी | 60 | | | एफएफएफ | |   

Googling से मुझे Group_Concat फ़ंक्शन मिलता है।

लेकिन यह उसी कॉलम में xxx, yyy, zzz जैसे दे देंगे।

मैं उपरोक्त प्रारूप कैसे प्राप्त करूं?

कृपया मेरी सहायता करें।

ठीक है, निम्नलिखित पर विचार करें ...

  ड्रॉप तालिका यदि मौजूदा एबीसी; टेबल एबीसी बनाएं (आईडी INT नहीं NULL AUTO_INCREMENT प्राथमिक कुंजी, कोला चार्द (1) नहीं, कॉलब सीआर (3) नल, ColC INT नहीं है); एबीसी (कोला, कोल्ब, कोल सी) मूल्यों में INSERT ('ए', 'xxx', 40), ('ए', 'वाई वाई वाई', 40), ('ए', 'जेज़', 40), ('बी ('सी', 'टीटीटी', 60), ('सी', 'एफएफएफ', 60); एबीसी से चयन करें; + ---- + ------ + ------ + ------ + | आईडी | कोला | ColB | ColC | + ---- + ------ + ------ + ------ + | 1 | ए | Xxx | 40 | | 2 | ए | वाई वाई वाई | 40 | | 3 | ए | ज़ज़ | 40 | | 4 | बी | एबीसी | 50 | | 5 | बी | बीसीए | 50 | | 6 | सी | टीटीटी | 60 | | 7 | सी | एफएफएफ | 60 | + ---- + ------ + ------ + ------ + SELECT id, a, b, c fROM (SELECT id, CASE जब कोला = @prev_a THR @curr_a: = '' शेष @curr_a: = कोला एक, @prev_a END: = कोला, मामला है जब ColB = @prev_b तो @curr_b: = '' शेष @curr_b: = ColB अंत ख, @prev_b: = ColB, मामला है जब ColC = @prev_c तो @curr_c: = '' शेष @curr_c: = ColC अंत ग, @prev_c: = ColC एबीसी से, (@curr_a का चयन करें = '', @prev_a = '', @curr_b = '', @prev_b = ' ', @curr_c =' ', @prev_c =' ') आईडी के द्वारा वार्स आदेश) आईडी के द्वारा आदेश; + ---- + ------ + ------ + ------ + | आईडी | एक | बी | सी | + ---- + ------ + ------ + ------ + | 1 | ए | Xxx | 40 | | 2 | | वाई वाई वाई | | | 3 | | ज़ज़ | | | 4 | बी | एबीसी | 50 | | 5 | | बीसीए | | | 6 | सी | टीटीटी | 60 | | 7 | | एफएफएफ | | + ---- + ------ + ------ + ------ +   

मुझे इस बात का उल्लेख करना चाहिए कि यह कॉलेशन मैच मानता है (जैसे SET NAMES Utf8;)

Comments

Popular posts from this blog

sql - Return Function using Cursor -

c++ - why does this code produce a runtime error? -

javascript - Is there any way to add a new parameter to a function programmatically? -