我想在列中的值中添加“%”单位

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');

【讨论】:

以上是关于我想在列中的值中添加“%”单位的主要内容,如果未能解决你的问题,请参考以下文章

SQL 更新表中的所有条目,但在列上插入不同的值

如何在代码中的sql表列中插入默认值

插入数据并在列中添加前一行数据

用于在列1中选择与第2列中的两个模式之一匹配的值对的SQL查询

在多个列中搜索

Laravel - 在列中的json / array中保存多个字段值