如果Field1中的值为null,则从Field2中返回值,否则返回String

时间:2019-02-27 20:43:19

标签: sql ms-access null iif

尽管这看起来很简单,但我无法获得它,也无法通过在此处搜索找到所需的东西。我需要在构建器中或在我的SQL代码中完成此操作,对于已经在执行的查询,这已经是非常冗长的代码。这是问题的根源:

字段:ItemID | CustomID

如果CustomID中有一个值,我想用一个字符串ItemID覆盖该记录的"CK"+CustomID值。

如果该记录的CustomID字段为空,则保留原始的ItemID

然后,我还需要该字段的值,以用于从链接表中提取正确的数据。当前,它将为后续字段拉取原始ItemID的值,而不是将替换"CK+CustomID"的字符串ItemID的值。

我认为也许需要一个独立的子查询来辨别该字段的值,然后才需要使用该值从查找表中收集后续字段。

我愿意使用由查询生成器生成的SQL代码,但仅凭代码我就不是最好的。

谢谢您的帮助!

1 个答案:

答案 0 :(得分:0)

在没有看到表或链接表内容的示例,也不知道这些表中任何一个表的名称的情况下,我建议使用以下示例代码:

select * 
from yourlinkedtable t inner join
(
    select iif(t.customid is null, t.itemid, 'CK' & t.customid) as id
    from yourtable t
) q 
on t.itemid = q.id

在这里,yourtable代表包含ItemIDCustomID字段的表,而yourlinkedtable代表要与前缀{{1}匹配的表}。