从不是“ 0”的SQL的第一个位置提取字符串

时间:2019-12-03 11:05:15

标签: sql ms-access

我试图在字符串中找到一个不是“ 0”的值的第一个位置,以便提取后面的值。字符串的长度均为10。所有字符串均以D开头,然后为可变量“ 0”,我需要在字符串中找到不是“ 0”的第一个位置。例子:

String      Need to extract
D009902167, 9902167
D000128677, 128677
D000004395, 4395

我首先想这样做:

Mid(Stringname,InStr(2,Stringname, <>"0"))

但是我现在读到InStr不接受<>,!或不。如何从值不为“ 0”的第一个位置提取字符串?

3 个答案:

答案 0 :(得分:0)

似乎您需要将字符串“ W”的值保留为“ D” 为此,您可以将D替换为空字符串并获取val()

     val(Replace(Stringname, "D", "") ) 

答案 1 :(得分:0)

使用MID()删除第一个字符,然后添加0仅获得数字结果(Access将隐式转换为整数):

SELECT MID(Stringname, 2) + 0
FROM tablename

答案 2 :(得分:0)

这在SQL中不是一件容易的事,但是我的方法是:

  1. 去除零点
  2. 找到要查找的字符
  3. 在没有删除字符的字符串中搜索该字符

总的来说,看起来像这样:

class FocusTabBarController: UITabBarController {

    var container: NSPersistentContainer!

    override func viewDidLoad() {
        super.viewDidLoad()

        guard container != nil else{
            fatalError("FocusTabBarController needs a container")
        }
        print("FocusTabBarController.persistContainer is available")
        setupViews()
    }

}

如果您的字符串仅包含数字,则可以使用Mid( Stringname, InStr( 2, Stringname, Left( Replace( Stringname, "0", "" ), 2 ) ) ) 去除前导零而不进行强制转换:

Format