【问题标题】:SQL Server : how can I ignore the last 5 characters of a varcharSQL Server:如何忽略 varchar 的最后 5 个字符
【发布时间】:2018-03-30 21:26:37
【问题描述】:

我是 SQL 新手并使用 SQL Server 2012,我试图忽略字符串的最后 5 个字符...我有这个简单的查询

Select MarketIdentifier from Markets

我试过了

select SUBSTR(TRIM(MarketIdentifier), 1, LENGTH(TRIM(MarketIdentifier))-2) AS "MarketID" 
from Markets

但我得到了错误

消息 195,第 15 级,状态 10,第 4 行
“TRIM”不是可识别的内置函数名称。

MarketIdentifier 有大约 20 个字符,我只想要前 15 个字符。任何建议都会很棒

【问题讨论】:

  • FWIW, TRIM() 可以在旧版本上使用 LTRIM(RTRIM()) 完成,但您似乎从其他一些数据库平台(SUBSTRLENGTH 不存在于SQL 服务器)。 "MarketID" 恕我直言也是个坏主意 - 使用 [MarketID] 或仅使用 MarketID
  • 我猜是Oracle语法

标签: sql sql-server


【解决方案1】:

对于前 15 个,您将使用 left() 函数:

select left(MarketIdentifier, 15) 
from Markets;

不过,您的问题稍微复杂一些。要删除最后五个字符,您可以这样做:

select left(MarketIdentifier, len(left(MarketIdentifier, 15) ) - 5) 
from Markets;

【讨论】:

    【解决方案2】:
    SELECT RIGHT(MarketIdentifier, LEN(MarketIdentifier) - 5) AS MyTrimmedColumn  AS "MarketID" from Markets
    

    【讨论】:

      【解决方案3】:

      在您的 PHP 代码中,只需选择您的查询并使用 trim() 函数来处理您想要的任意数量的字符。这应该有效。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-22
        • 1970-01-01
        • 2013-08-27
        • 2012-11-15
        • 1970-01-01
        相关资源
        最近更新 更多