MYSQL Сохраненная процедура - значение строки Concat - PullRequest
0 голосов
/ 16 июня 2020

Обновить

Извините за задержку с ответом. Я был вчера в путешествии, когда отправил это. Я использую версию 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 test

FROM frm.fi_details

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

GROUP BY frm .fi_details.PortfolioCode, frm.fi_details.Symbol

ЗАКАЗ ПО frm.fi_details.PortfolioCode, frm.fi_details.WorstDate_Final;

brownfmi 143753 brownfmi 1037

коричневый *

brownfmi 143744 brownfmi

brownfmi 143739 brownfmi

brownfmi 143740 brownfmi

brownfmi 143738 brownfmi

brownfmi 143747 brownfmi

brownfmi 143749 коричневый fmi

коричневый fmi 143761 коричневый fmi * 1 038 *

коричневыйhcb 143769 коричневыйhcb

коричневыйhcb 143774 коричневыйhcb

коричневыйhcb 143780 коричневыйhcb

коричневыйhcb 143781 коричневыйhcb

коричневыйhcb 143773 коричневый

1048 * 1048 brownhcb 143784 коричневыйhcb

коричневыйhcb 143783 коричневыйhcb

коричневыйhcb 143785 коричневыйhcb

коричневыйhcb 143786 коричневыйhcb

коричневыйhcb 143762 **** коричневыйhcb ****

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 * 106100 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 143 820 Browntrf Browntrf 143890 browntrf browntrf 143889 browntrf browntrf 143867 browntrf browntrf 143866 browntrf browntrf 143830 browntrf browntrf 143896 browntrf browntrf 143836 browntrf browntrf 143852 browfr3876 brownt 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 1438 82 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


По какой-то причине , Мне сложно продумать, как я мог бы связаться со строкой, если она отличается от предыдущей в хранимой процедуре. Например, если я выбираю состояния из своей таблицы, когда выбор переходит в новое состояние, добавьте к нему '**', чтобы выделить его. Я знаю, что мне нужно установить переменную, и если еще через нее, но все, что я пробовал, не удалось. : (

Спасибо за вашу помощь.

Например

** AR **

AR

AR

AR

** CA **

CA

CA

CA

1 Ответ

0 голосов
/ 17 июня 2020

Вы не показали свой существующий код, поэтому неясно, как ваш вопрос относится к хранимой процедуре. Если вы используете MySQL 8.0, вы можете сделать это с помощью оператора select и оконных функций. Чтобы получить результат согласованный при последовательных выполнениях, вам понадобится столбец, определяющий порядок строк - я предположил 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
...