我正在尝试从Access 2007的列中获取3或4个零,但在数据类型为text(来自csv数据)的情况下,没有得到任何结果。
答案 0 :(得分:0)
据我了解,MS Access实际上应该支持LTRIM
。以下是您需要时的解决方法:
SELECT
IIF(string LIKE "0000*",
MID(string, 5),
IIF(string LIKE "000*", MID(string, 4), string)) output
FROM yourTable;
答案 1 :(得分:0)
这里有几个快速编写的LTrim
和RTrim
函数,用于处理空格以外的字符:
Function LTrimChr(strStr As String, strChr As String) As String
If strStr Like strChr & "*" Then
LTrimChr = LTrimChr(Mid(strStr, 2), strChr)
Else
LTrimChr = strStr
End If
End Function
Function RTrimChr(strStr As String, strChr As String) As String
If strStr Like "*" & strChr Then
RTrimChr = RTrimChr(Left(strStr, Len(strStr) - 1), strChr)
Else
RTrimChr = strStr
End If
End Function
期望strChr
为单个字符,例如:
?LTrimChr("000123456789000","0")
123456789000
?RTrimChr("000123456789000","0")
000123456789
答案 2 :(得分:0)
仅在数字的情况下,您可以使用 Val 去除前导零:
LTrimmedValue = CStr(Val(Value))
' "000123456789000" -> "123456789000"
答案 3 :(得分:0)
MS Access支持ltrim()
,但仅适用于空格。因此,假设您的字符串没有空格,则可以使用replace()
和ltrim()
:
select replace(ltrim(replace(col, '0', ' ')), ' ', '0')
如果您确实有空格,那么通常会有一个您没有的字符,因此您可以先替换空格:
select replace(replace(ltrim(replace(replace(col, ' ', '~'
), '0', ' '
)
), ' ', '0'
), '~', ' '
)