簡體   English   中英

MYSQL 存儲過程 - 連續行值

[英]MYSQL Stored Procedure - Concat Row Value

更新

很抱歉延遲回復。 我昨天發送它時正在旅行。我使用的是 5.6 版。 這就是我的想法,它確實標記了何時發生變化,但問題是排序導致結果集無序。 我想我需要創建一個臨時表,並在設置訂單后應用條件格式。

SET @previousstate = '';

SELECT frm.fi_details.PortfolioCode AS '投資組合代碼', id, if(@previousstate.= frm.fi_details,PortfolioCode, concat('***':@previousstate.= frm.fi_details,PortfolioCode,'****' ).frm.fi_details.PortfolioCode) AS 測試

FROM frm.fi_details

WHERE frm.fi_details.manager = 'Shartz' And frm.fi_details.PortfolioCode Like ('Brown%')

按 frm.fi_details.PortfolioCode、frm.fi_details.Symbol 分組

按 frm.fi_details.PortfolioCode、frm.fi_details.WorstDate_Final 排序;

brownfmi 143753 brownfmi

brownfmi 143748 brownfmi

brownfmi 143744 brownfmi

brownfmi 143739 brownfmi

brownfmi 143740 brownfmi

brownfmi 143738 brownfmi

brownfmi 143747 brownfmi

brownfmi 143749 brownfmi

brownfmi 143761 brownfmi

brownhcb 143769 brownhcb

brownhcb 143774 brownhcb

brownhcb 143780 brownhcb

brownhcb 143781 brownhcb

brownhcb 143773 brownhcb

brownhcb 143784 brownhcb

brownhcb 143783 brownhcb

brownhcb 143785 brownhcb

brownhcb 143786 brownhcb

brownhcb 143762 ****brownhcb ****

brownhcb 143763 brownhcb brownhcb 143788 brownhcb brownhcb 143777 brownhcb brownhcb 143767 brownhcb brownhcb 143764 brownhcb brownhcb 143779 brownhcb brownhcb 143778 brownhcb brownhcb 143789 brownhcb brownhcb 143772 brownhcb brownhfi 143799 brownhfi brownhfi 143808 brownhfi brownhfi 143805 brownhfi brownhfi 143806 brownhfi brownhfi 143793 brownhfi brownhfi 143795 brownhfi brownhfi 143797 brownhfi brownhfi 143791 brownhfi brownhfi 143801 brownhfi brownhfi 143807 brownhfi brownhfi 143798 brownhfi brownhfi 143804 brownhfi brownhfi 143796 brownhfi brownhfi 143790 brownhfi brownhfi 143800 brownhfi brownhfi 143794 brownhfi brownhfi 143802 brownhfi brownhfi 143792 brownhfi brownhfi 143803 brownhfi brownira 143809 brownira browntrf 143838 browntrf browntrf 143860 browntrf browntrf 143905 browntrf browntrf 143891 browntrf browntrf 143846 browntrf browntrf 143877 browntrf browntrf 143857 browntrf browntrf 143872 browntrf browntrf 143834 browntrf browntrf 143898 browntrf browntrf 143841 browntrf browntrf 143817 browntrf browntrf 143826 browntrf browntrf 143822 browntrf browntrf 143868 browntrf browntrf 143883 browntrf browntrf 143899 browntrf browntrf 143840 browntrf browntrf 143900 browntrf browntrf 143850 browntrf browntrf 143869 browntrf browntrf 143865 browntrf browntrf 143837 browntrf browntrf 143844 browntrf browntrf 143851 browntrf browntrf 143901 browntrf browntrf 143833 browntrf browntrf 143856 browntrf browntrf 143870 browntrf browntrf 143875 browntrf browntrf 143887 browntrf browntrf 143903 browntrf browntrf 143828 browntrf browntrf 143847 browntrf browntrf 143820 browntrf browntrf 143890 browntrf browntrf 143889 browntrf browntrf 143867 browntrf browntrf 143866 browntrf browntrf 143830 browntrf browntrf 143896 browntrf browntrf 143836 browntrf browntrf 143852 browntrf browntrf 143876 browntrf browntrf 143904 browntrf browntrf 143874 browntrf browntrf 143813 browntrf browntrf 143854 browntrf browntrf 143815 browntrf browntrf 143878 browntrf browntrf 143842 browntrf browntrf 143897 browntrf browntrf 143863 browntrf browntrf 143879 browntrf browntrf 143880 browntrf browntrf 143849 browntrf browntrf 143816 browntrf browntrf 143862 browntrf browntrf 143858 browntrf browntrf 143831 browntrf browntrf 143832 browntrf browntrf 143835 browntrf browntrf 143873 browntrf browntrf 143848 browntrf browntrf 143839 browntrf browntrf 143827 browntrf browntrf 143864 browntrf browntrf 143823 browntrf browntrf 143895 browntrf browntrf 143884 browntrf browntrf 143871 browntrf browntrf 143810 browntrf browntrf 143824 browntrf browntrf 143821 browntrf browntrf 143812 browntrf browntrf 143892 browntrf browntrf 143881 browntrf browntrf 143861 browntrf browntrf 143829 browntrf browntrf 143819 browntrf browntrf 143811 browntrf browntrf 143894 browntrf browntrf 143818 browntrf browntrf 143882 browntrf browntrf 143843 browntrf browntrf 143859 browntrf browntrf 143855 browntrf browntrf 143885 browntrf browntrf 143902 browntrf browntrf 143893 browntrf browntrf 143886 browntrf browntrf 143845 browntrf browntrf 143825 browntrf browntrf 143888 browntrf browntrf 143853 browntrf browntrf 143814 browntrf


出於某種原因,我無法思考如果一行與存儲過程中的前一行不同,我將如何聯系它。 For example if I select states from my table, when the select gets to a new state have it append '**' to make it stand out. 我知道我必須設置一個變量,如果還有的話,但我嘗試的一切都失敗了。 :(

謝謝你的幫助。

例如

**AR**

增強現實

增強現實

增強現實

**加拿大**

加利福尼亞州

加利福尼亞州

加利福尼亞州

您尚未顯示現有代碼,因此不清楚您的問題與存儲過程有何關系。 如果您正在運行 MySQL 8.0,則可以執行select語句和 window 函數。 為了在連續執行中獲得一致的結果,您需要一個定義行順序的列 - 我假設id

select
    id,
    case when row_number() over(partition by state order by id) = 1
        then concat('**', state, '**')
        else state
    end
from mytable
order by state, id

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM