【问题标题】:Multiple parameters in Replace SQL Server替换 SQL Server 中的多个参数
【发布时间】:2021-10-25 06:18:24
【问题描述】:

我使用的是 SQL Server 2016。我有一个列 A,其中包含 C20.1C20.2 等值。我只想删除后缀值(.1.2)并仅保留 C20

Column A
---------
C20
C20.1
C20.2

输出应该是这样的:

Column B
--------
C20
C20
C20

我试过这条 SQL 语句:

SELECT 
    REPLACE (ColumnA, '.1', '.2', '')

但当我传递 4 个参数时,此查询会引发错误。

【问题讨论】:

    标签: sql sql-server tsql replace


    【解决方案1】:

    我们可以将您的要求表述为您希望保留输入字符串,但不包括第一个点,或者如果不存在点,则保留整个字符串。这给了我们:

    SELECT
        val,
        CASE WHEN CHARINDEX('.', val) > 0
             THEN SUBSTRING(val, 1, CHARINDEX('.', val) - 1)
             ELSE val END AS val_out
    FROM yourTable;
    

    Demo

    【讨论】:

      【解决方案2】:

      您可以使用substring()

      select substring(columnA,0,4)
      from table
      

      【讨论】:

      • 最好的表达是left(columnA, 4)
      猜你喜欢
      • 1970-01-01
      • 2020-05-13
      • 2020-10-21
      • 2020-07-04
      • 2021-04-28
      • 1970-01-01
      • 2022-01-01
      • 1970-01-01
      • 2016-07-11
      相关资源
      最近更新 更多