代码之家  ›  专栏  ›  技术社区  ›  Mishal

删除字符串TSQL中的第一个逗号

  •  0
  • Mishal  · 技术社区  · 1 年前

    如果提到“”,我会尝试修剪标记,但这样做时,第一个逗号仍然保留。

    --drop tags like 'وسم' 
    drop table temp
    CREATE TABLE temp (tags NVARCHAR(1500));
    INSERT INTO temp values(N'تفاحة, أناناس, وسم')
    INSERT INTO temp values(N'تفاحة, موز, برتقال, وسم, العنب')
    

    我试着运行这个:

        set temp.tags = replace(tags,N'وسم,','')
        where tags like N'%وسم%'
        update temp
        set temp.tags = replace(tags,N'وسم','')
        where tags like N'%وسم%'
    

    这就是输出:

    تفاحة, أناناس,
    تفاحة, موز, برتقال, العنب
    

    理想情况下应该是什么:

    تفاحة, أناناس
    تفاحة, موز, برتقال, العنب
    

    我还试着跑步:

    UPDATE temp
    SET temp.tags =  case when charindex(',',temp.tags,0) =1 then right(temp.tags, len(temp.tags)-1) else temp.tags end
    

    在字符串开头有逗号的地方,我最终得到了相同的输出。

    1 回复  |  直到 1 年前
        1
  •  0
  •   matt sharp    1 年前

    我看到你在和之间有一个空格,

    您可能需要考虑更换以下所有部件

    update temp 
    set temp.tags = replace(tags,N'وسم,','');
    
    update temp 
    set temp.tags = replace(tags,N',وسم','');
    
    update temp 
    set temp.tags = replace(tags,N', وسم','');
    
    update temp 
    set temp.tags = replace(tags,N'وسم ,','');