Member 14225726 Ответов: 1

В SQL поворота - разворота вне зависимости от данных значений null


У меня есть запрос, который соединен с другими таблицами. Я поворачиваю данные на основе result_value и единиц измерения. Эти два пункта связаны друг с другом.

Например, измерение Cu = ppm , значение Cu = 27

Однако в столбце есть поля, которые являются нулевыми. Как я все еще печатаю его измерение независимо от того, является ли связанный с ним столбец нулевым? Поля, представленные в Столбцах единиц измерения, все одинаковы

        Sample ID	Lab ID	            N_Val	NUnit	 P_Val      PUnit
1	CU ANNGRO	L19042090	    1.60		 1598	    %	
2	CU ANNGRO	L19042090						
3	CU BREAK THRU	L19042091	    1.53	%	 1598	    %											


Что я уже пробовал:

-- Simplify the pivot selection query by separating the query using a with clause

WITH pivot_data AS(
    SELECT va.identity,vc.units,
    s.field_name "Sample ID",
    s.id_text "Lab ID",
    TO_CHAR(str.result_value, S_FORMATMASK_PACKAGE.s_FormatMask(vc.analysis, s.id_numeric))result_value
  from samp_test_result str
  inner join sample s on str.id_numeric = s.id_numeric and str.id_text = s.id_text
  inner join client c on c.id = s.client_id
  inner join versioned_analysis va on va.identity = str.analysis
  inner join versioned_component vc on vc.analysis = va.identity and vc.analysis_version = va.analysis_version and vc.name = str.component_name
  WHERE s.fas_sample_type = 'LEAF'
  AND s.status            = 'A'
  AND s.flg_released      = 'T'
  AND vc.flg_report       = 'T'
  AND c.id = UPPER ('N000068')
  AND s.ID_NUMERIC between TO_NUMBER(12918) and TO_NUMBER(12920)
  )
SELECT pvt12.*
FROM(SELECT * FROM pivot_data PIVOT ( MAX(result_value) result_value , MAX(units) units FOR identity IN(
                                                                                                  'NIR_N' "Nitro",
                                                                                                  'XRF_P' "P",
                                                                                                  'XRF_CA' "Ca",
                                                                                                  'XRF_MG' "Mg",
                                                                                                  'XRF_MN' "Mn", 
                                                                                                  'XRF_S' "S",
                                                                                                  'XRF_ZN' "Zn", 
                                                                                                  'XRF_CU' "Cu", 
                                                                                                  'XRF_FE' "Fe",
                                                                                                  'XRF_K' "K",
                                                                                                  'XRF_SI' "Si")))  pvt12  

1 Ответов

Рейтинг:
0

MadMyche

Я человек SQL Server, и я знаю, какие значения я бы заменил нулевойs with и я буду использовать функцию IsNull.... Но это не Sql Server, и я понятия не имею, где будут появляться ваши нули и какими значениями вы хотите их заменить.

Возможно, это поможет
Спросите Тома "Pivot и нулевые значения"[^]


Member 14225726

Значения единиц измерения хранятся в базе данных в моем случае?

MadMyche

Конечным результатом является то, что вам нужно выяснить, где находятся нули и чем их заменить