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



我正在做一个关于MS Access的SQL项目。 我想知道是否有办法在每次字段不为 NULL 时分配相同的值。我知道有 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列(强烈建议这样做(,则需要生成序列号。

您的表有主键吗?然后,您要计算主键小于此键的所有空值以为您提供数字,并将 Present 放在非空值的位置。因此(假设您的字段为 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'

相关内容

  • 没有找到相关文章

最新更新