是否可能有两个带有一个条件的“ THEN”语句?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了是否可能有两个带有一个条件的“ THEN”语句?相关的知识,希望对你有一定的参考价值。

例如,如果我有一个需要满足的条件,那么我需要对列值做另一件事,我将如何去做呢?

    CAST(
    CASE WHEN TRY_CAST(CON_ORDERS_MIN.CONCAT_ITEM AS numeric) = o.ORDER_ID
        THEN NULL
    WHEN CHARINDEX(CAST(o.ORDER_ID AS nvarchar), CON_ORDERS_MIN.CONCAT_ITEM) > 0
    --CONDITION 1
        THEN REPLACE(CON_ORDERS_MIN.CONCAT_ITEM, CAST(o.ORDER_ID AS nvarchar), '')
    --CONDITION 2
        THEN replace(ltrim(rtrim(replace(replace(replace(replace(col, ',', '><'), '<>', ''), '><', ','), ',', ' '))), ' ', ',')
    ELSE CON_ORDERS_MIN.CONCAT_ITEM
    END AS VARCHAR
)AS EXAMPLE

我问“当在此数字列表中找到此数字时,请删除该数字并删除逗号。”因此,找到它后,将其替换为任何内容并清理逗号。而且我[不了解长期嵌套的替换内容。实际上,看着它伤害了我的大脑。有人有更好的方法吗?

数据示例:

ID_TB_SEARCHED CSV_IDS 1234567 1234567, 8900123, 12349786

我正在努力实现的目标:

ID_TB_SEARCHED CSV_IDS 1234567 8900123, 12349876

编辑:另外,我知道第二个替换功能不正确。我只是复制并粘贴。
答案
终于沉没了,我应该将两者结合起来!

replace(ltrim(rtrim(replace(replace(replace(replace(REPLACE(CON_ORDERS_MIN.CONCAT_ITEM, CAST(ord.ORDER_ID AS nvarchar), ''), ',', '><'), '<>', ''), '><', ','), ',', ' '))), ' ', ',')

以上是关于是否可能有两个带有一个条件的“ THEN”语句?的主要内容,如果未能解决你的问题,请参考以下文章

shell编程之文件测试及if多分支语句

带有条件 CASE 语句的 SQL LEFT JOIN

脚本语句介绍和练习题一

2.1 shell语句

shell进阶

shell脚本的if判断语句