我想在列中的值中添加“%”单位
Posted
技术标签:
【中文标题】我想在列中的值中添加“%”单位【英文标题】:I want to add '%' units to the values in my column 【发布时间】:2017-07-19 12:49:38 【问题描述】:Actual_results 列中的数据:6 期望输出:6%
程序:
BEGIN
SELECT CYTOTOXICITY_PF,
CYTOTOXICITY_PER
INTO bio_test,
B_ACTUAL_RESULT
FROM src_material
WHERE study_id =V_ITEM_ID(i)
AND NEW_MAT_NUMBER=V_NEW_MAT_NUMBER(I);
b_test3:='CYTOTOXICITY';
EXCEPTION
WHEN TOO_MANY_ROWS THEN
INSERT
INTO TCE_DATA_ISSUES VALUES
(
V_ITEM_ID(i),
'CYTOTOXICITY',
V_NEW_MAT_NUMBER(I),
TRANS_NAME,
'TOO MANY ROWS'
);
bio_test :='';
B_ACTUAL_RESULT:='';
END;
ELSE
bio_test :=F_GET_TEST_VALUE(V_ITEM_ID(i),b_test3,V_NEW_MAT_NUMBER(I));
B_ACTUAL_RESULT:='';
END IF;
BEGIN
INSERT
INTO tce_test_result_form
(
UNQ_NUM,
MIG_STATUS,
ITEM_ID,
REV_ID,
FORM_NAME,
CREATION_DATE,
B4_TEST_NAME,
B4_ACTUAL_RESULT,
B4_PASS_FAIL,
B4_EXTRACTION_TEMPERATURE
)
VALUES
(
V_UNQ_NUM,
'CREATE',
V_ITEM_ID(i),
'A',
CASE b_test3
WHEN 'HEMOLYSIS_PF'
THEN V_ITEM_ID(i)
||'/A'
||'_Hemocompatibility - In Vitro Hemolysis Assay Indirect'
ELSE V_ITEM_ID(i)
||'/A'
||'_'
||b_test3
END,
V_CREATION_DATE(i),
CASE b_test3
WHEN 'HEMOLYSIS_PF'
THEN 'Hemocompatibility - In Vitro Hemolysis Assay Indirect'
ELSE B_TEST3
END,
NVL(B_ACTUAL_RESULT,'N/A'),
CASE
WHEN BIO_TEST IN('P','P')
THEN 'PASS'
WHEN BIO_TEST IN('f','F')
THEN 'FAIL'
ELSE 'NOT REQUIRED'
END,
B_EXTRACT_TEMPERATURE
);
如何将“%”添加到 ACTUAL_RESULTS?
我可以NVL(V_ACTUAL_RESULT || '%', 'N/A')
吗?
(因为如果 ACTUAL RESULT 中没有值,我被要求更新 N/A)
【问题讨论】:
您不应该将单位存储在与值相同的字段中 您最好在值字段旁边添加一个“单位”字段,例如 ` "%" as Unit, `。这样您仍然可以对值字段进行数字运算 【参考方案1】:使用解码来区分 N/A 和其他结果
decode(V_ACTUAL_RESULT, 'N/A', 'N/A', V_ACTUAL_RESULT || '%')
【讨论】:
【参考方案2】:您可以这样做(如果声明的 V_ACTUAL_RESULT 列数据类型与 CHAR 兼容)
NVL2(V_ACTUAL_RESULT, V_ACTUAL_RESULT || '%', 'N/A');
【讨论】:
以上是关于我想在列中的值中添加“%”单位的主要内容,如果未能解决你的问题,请参考以下文章