Select 使用 iif 访问查询的值
Select a value using iif access query
我有一行包含这个值:
account :
adm.ahrgrst001
adm.ns2dhdujhd
adm.ff2hdjhh
adm.haidhidh103
adm.hshiksh122
adm.cn3ehuioe
我想提取两个不同的值:
当它像 adm.hshiksh122
这样结束时,我想提取 hshiksh
从 adm.cn3ehuioe
开始,我想要 ehuioe
开头都没有 adm.
我想过
IIF(isnumeric(RIGHT (account,3)),LEFT(account,LEN(account)-4),RIGHT (account,LEN(account)-7))
像adm.cn3ehuioe
的值我错了像adm.cn3ehui
adm.ahrgrst001
是正确的 ahrgrst
感谢所有阅读的人
获取这两种类型值的正确方法是:
account LIKE 'adm.[!0-9][!0-9]#[!0-9]*'
对于点后有2个字母,1个数字和字母的值,并且:
account LIKE 'adm.*###'
对于以 3 位数字结尾的值。
所以使用这个:
SELECT IIF(
account LIKE 'adm.*###' ,
MID(account, 5, LEN(account) - 7),
MID(account, 8)
) AS result
FROM tablename
WHERE account LIKE 'adm.*###' OR account LIKE 'adm.[!0-9][!0-9]#[!0-9]*'
如果除了这两种类型没有其他值,那么您可以删除 WHERE
子句。
您的示例数据的结果:
result
ahrgrst
dhdujhd
hdjhh
haidhidh
hshiksh
ehuioe
我有一行包含这个值:
account :
adm.ahrgrst001
adm.ns2dhdujhd
adm.ff2hdjhh
adm.haidhidh103
adm.hshiksh122
adm.cn3ehuioe
我想提取两个不同的值:
当它像 adm.hshiksh122
这样结束时,我想提取 hshiksh
从 adm.cn3ehuioe
开始,我想要 ehuioe
开头都没有 adm.
我想过
IIF(isnumeric(RIGHT (account,3)),LEFT(account,LEN(account)-4),RIGHT (account,LEN(account)-7))
像adm.cn3ehuioe
的值我错了像adm.cn3ehui
adm.ahrgrst001
是正确的 ahrgrst
感谢所有阅读的人
获取这两种类型值的正确方法是:
account LIKE 'adm.[!0-9][!0-9]#[!0-9]*'
对于点后有2个字母,1个数字和字母的值,并且:
account LIKE 'adm.*###'
对于以 3 位数字结尾的值。
所以使用这个:
SELECT IIF(
account LIKE 'adm.*###' ,
MID(account, 5, LEN(account) - 7),
MID(account, 8)
) AS result
FROM tablename
WHERE account LIKE 'adm.*###' OR account LIKE 'adm.[!0-9][!0-9]#[!0-9]*'
如果除了这两种类型没有其他值,那么您可以删除 WHERE
子句。
您的示例数据的结果:
result |
---|
ahrgrst |
dhdujhd |
hdjhh |
haidhidh |
hshiksh |
ehuioe |