【问题标题】:How to take last four characters from a varchar?如何从varchar中获取最后四个字符?
【发布时间】:2012-09-20 01:25:56
【问题描述】:

我试图仅从 varchar 字段中获取最后四个字符。所有的行都是不同的长度。我应该使用什么功能来完成此操作?

【问题讨论】:

    标签: sql sql-server-2008 tsql


    【解决方案1】:

    正确的应该这样做:

    select RIGHT('abcdeffff',4)
    

    【讨论】:

    • 是的,你是对的。
    【解决方案2】:
    SUBSTR(column, LENGTH(column) - 3, 4)
    

    LENGTH 返回字符串的长度,SUBSTR 从“位置长度 - 4”返回 4 个字符

    【讨论】:

    • 欢迎来到 SO 并感谢您发布答案。请考虑为您的代码添加上下文并格式化您的代码。
    • 这里有一个错误。应该是SUBSTR(column, LENGTH(column) - 3, 4)。如果长度恰好是 4,我们需要从位置 1 开始,取 4 个字符。
    【解决方案3】:

    RIGHT ( character_expression , integer_expression )

    SELECT RIGHT(column, 4) FROM ...
    

    还有其他string functions的列表。

    【讨论】:

      【解决方案4】:

      使用RIGHT()函数:http://msdn.microsoft.com/en-us/library/ms177532(v=sql.105).aspx

      SELECT RIGHT( '1234567890', 4 ); -- returns '7890'
      

      【讨论】:

        【解决方案5】:

        对于 Oracle SQL,SUBSTR(column_name, -# of characters requested) 将提取给定查询的最后三个字符。 例如

        SELECT SUBSTR(description,-3) FROM student.course;
        

        【讨论】:

        • 请注意,这不适用于 ms sql/sql-server,对吧?
        【解决方案6】:

        您可以使用- 选择最后一个字符

        WHERE SUBSTR('Hello world', -4)
        

        【讨论】:

          【解决方案7】:

          我在 SQL Server 中使用了 RIGHT 函数,它正在工作。

          SELECT RIGHT( your_column_name, 4 );
          

          --显示最后4位/字符

          【讨论】:

            【解决方案8】:

            在hackerrank上测试过的解决方案......

            select distinct(city) from station
            where substr(lower(city), length(city), 1) in ('a', 'e', 'i', 'o', 'u') and substr(lower(city), 1, 1) in ('a', 'e', 'i', 'o', 'u');
            

            【讨论】:

              猜你喜欢
              • 2011-09-18
              • 1970-01-01
              • 2014-06-08
              • 2015-06-27
              • 2015-06-27
              • 1970-01-01
              • 1970-01-01
              • 2012-07-11
              • 1970-01-01
              相关资源
              最近更新 更多