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

时间:2019-08-05 15:41:59

标签: sql ms-access null field

我正在使用MS Access进行SQL项目。 我想知道是否有一种方法可以在每次字段不为空时分配相同的值。我知道Nz()函数的作用与此相反,但是我不知道其他函数。 另外,我想每次字段为NULL时都放一个不同的值

我的桌子看起来像这样。

date


MARCH17
JUNE18

JULY19

我想得到类似的东西。

date
1
2
PRESENT
PRESENT
5
PRESENT

如果我必须创建另一列,那也很好。

谢谢!

3 个答案:

答案 0 :(得分:0)

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

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

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

如果没有id列(强烈建议使用),则需要生成一个序列号。

答案 1 :(得分:0)

您的表有主键吗?然后,您要计算主键小于此值的所有null,以便为您提供数字,并在不为null的位置出现。因此(假设您的字段为F1,主键称为PK),则计算出以下字段

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

答案 2 :(得分:0)

您可以使用:

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