ms access sql 检查字符串是否只包含有效字符
ms access sql Check if string contains only valid characters
我有一个字段,一旦 B 出现,它的右边不应有除 B 以外的任何其他 letters/digits。
即有效值:0000BBBB
无效值:0000BAG0
到目前为止,我已经成功地从 B 的出现中提取子字符串。但是我一直卡在如何检查每个字符是否是 B.
以下是我到目前为止编写的查询:
IIF(
MID(Field, INSTR(Field, 'B'), LEN(Field)) NOT LIKE '*[B]*',
"FAIL",
"PASS"
)
但这导致 0000BBBBA 通过,实际上是失败。
字符 class [!B]
匹配除字母 B 以外的任何字符。因此,获取从 Mid()
获得的子字符串并检查它是否为 Not Like '*[!B]*'
--- IOW 是否包含 B.
以外的任何字符
SELECT
t.Field,
IIf(Mid(t.Field, InStr(t.Field, 'B')) Not Like '*[!B]*', 'PASS', 'FAIL')
FROM
FROM YourTable AS t
我有一个字段,一旦 B 出现,它的右边不应有除 B 以外的任何其他 letters/digits。 即有效值:0000BBBB 无效值:0000BAG0
到目前为止,我已经成功地从 B 的出现中提取子字符串。但是我一直卡在如何检查每个字符是否是 B.
以下是我到目前为止编写的查询:
IIF(
MID(Field, INSTR(Field, 'B'), LEN(Field)) NOT LIKE '*[B]*',
"FAIL",
"PASS"
)
但这导致 0000BBBBA 通过,实际上是失败。
字符 class [!B]
匹配除字母 B 以外的任何字符。因此,获取从 Mid()
获得的子字符串并检查它是否为 Not Like '*[!B]*'
--- IOW 是否包含 B.
SELECT
t.Field,
IIf(Mid(t.Field, InStr(t.Field, 'B')) Not Like '*[!B]*', 'PASS', 'FAIL')
FROM
FROM YourTable AS t