繁体   English   中英

如果字段不为空,则分配一个值

[英]Assign a value if the field is not null

我正在 MS Access 上进行 SQL 项目。 我想知道是否有办法在每次字段非空时分配相同的值。 我知道有 Nz() 函数的作用相反,但我不知道其他函数。 另外,我想在每次字段为 NULL 时输入不同的值

我的桌子看起来像那样。

date


MARCH17
JUNE18

JULY19

我想得到类似的东西。

date
1
2
PRESENT
PRESENT
5
PRESENT

如果我必须创建另一列,也完全没问题。

提前致谢 !

您需要将新信息放在新列中,否则,如果您多次运行查询,您将获得所有内容的PRESENT ,因为第一个查询用序列号替换了NULL date

如果您有一个id列,您可以使用:

UPDATE table SET new_column = (SELECT IIF(date IS NULL, id,'PRESENT'))

如果您没有id列(强烈推荐),那么您需要生成一个序列号。

你的表有主键吗? 然后你想计算主键小于这个的所有空值来给你你的数字,并把它放在不为空的地方。 因此(假设您的字段是 F1 并且主键称为 PK)以下计算字段

=IIf(ISNULL([F1]),DCOUNT("[PK]","MYTABLE","[PK]<" & [PK]) &""","PRESENT")

您可以使用:

UPDATE 
    YourTable 
SET 
    [date] = IIf([date] Is Null, 
        (Select Count(*) + 1 From YourTable As T Where T.[date] <> 'PRESENT'),
        'PRESENT'))
WHERE 
    [date] <> 'PRESENT'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM