У меня есть таблица, в которой хранятся данные, подобные этим.
MANUFACTURER_PART_NUMBER|MANUFACTURER_NAME |TEST_PLAN |ATTACHED_SUPPLIER_DOCUMENT |ATTACHED_LOGITECH_REPORT|
------------------------|-------------------------|--------------------|---------------------------|------------------------|
001059-0000 |CHENGDA |268452,268453 |268456,268457,268459,268460|268465 |
001059-0000 |SHANGHAI MARRISON CO.,LTD| |268458,268462 | |
001059-0000 |SUZHOU SHARETECH | | | |
001059-0000 |SYSTRON |268451,268452,268453|268456,268457,268459,268460|268465,268466 |
Я хочу получить максимальное количество столбцов, разделенных запятыми. Например, TEST_PLAN имеет максимум 3 значения в 4-й строке, но ATTACHED_SUPPLIER_DOCUMENT имеет 4 значения, поэтому я хочу, чтобы выходные данные возвращали 4 в качестве максимального числа.
Я пробовал этот запрос, чтобы узнать количество значений этих столбцов.
WITH CTE AS(
SELECT DISTINCT
MP.PART_NUMBER MANUFACTURER_PART_NUMBER, M.NAME MANUFACTURER_NAME,
RTRIM(LTRIM(PG3.MULTILIST31, ','), ',') TEST_PLAN, regexp_count(MULTILIST31, ',') + 1 AS COL1,
RTRIM(LTRIM(PG3.MULTILIST32, ','), ',') ATTACHED_SUPPLIER_DOCUMENT, regexp_count(MULTILIST32, ',') + 1 AS COL2,
RTRIM(LTRIM(PG3.MULTILIST33, ','), ',') ATTACHED_LOGITECH_REPORT, regexp_count(MULTILIST33, ',') + 1 AS COL3
FROM MANU_PARTS MP
INNER JOIN MANUFACTURERS M ON M.ID = MP.MANU_ID
LEFT JOIN PAGE_TWO PG2 ON PG2.ID = MP.ID
LEFT JOIN PAGE_THREE PG3 ON PG3.ID = MP.ID
WHERE PART_NUMBER = '001059-0000'
)
SELECT * FROM CTE
Вывод, который я ищу, выглядит примерно так ..
MANUFACTURER_PART_NUMBER|MANUFACTURER_NAME |TEST_PLAN |ATTACHED_SUPPLIER_DOCUMENT |ATTACHED_LOGITECH_REPORT|MAXCOUNT|
------------------------|-------------------------|--------------------|---------------------------|------------------------|--------|
001059-0000 |SYSTRON |268451,268452,268453|268456,268457,268459,268460|268465,268466 | 4|
001059-0000 |CHENGDA |268452,268453 |268456,268457,268459,268460|268465 | 4|
001059-0000 |SHANGHAI MARRISON CO.,LTD| |268458,268462 | | 4|
001059-0000 |SUZHOU SHARETECH | | | | 4|