【问题标题】:Trim "-" from data returned from SQL Server从 SQL Server 返回的数据中修剪“-”
【发布时间】:2021-11-28 19:09:21
【问题描述】:

我在 SQL Server 中有一个查询,它返回如下数据:

1234-A
2345-BB
3456-C
5678-CC
4567-AA              
6789-B
01234-A
26857-ZZ                         

这是我需要它显示的内容:

A
B
C
C
A
B
A
Z
  

我需要得到“-”后面的第一个字母。如何让它显示?

【问题讨论】:

    标签: sql sql-server tsql trim character-trimming


    【解决方案1】:

    试试这个:

    DECLARE @MyTable TABLE (MyCol VARCHAR(255));
    INSERT @MyTable (MyCol)
    VALUES ('1234-A'),('2345-BB'),('3456-C'),('5678-CC'),
           ('4567-AA'),('6789-B'),('01234-A'),('26857-ZZ');
    
    SELECT SUBSTRING(MyCol, CHARINDEX('-', MyCol, 1) + 1, 1)
    FROM @MyTable;
    

    CHARINDEX 查找列值中的“-”在哪里。
    SUBSTRING 从该索引 + 1 开始并返回,在本例中为 1 个字符。

    【讨论】:

    • @Scratte 查看我的更新。您也可以查看文档,这是非常简单的 t-sql。由于 OP 没有包含我自己的架构。
    【解决方案2】:

    可以使用 substr 和 instr 结合来获取输出

    【讨论】:

    • 这看起来像是来自 Oracle 的函数,而问题是关于 SQL Server。
    猜你喜欢
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多