2010-12-15 146 views
1

我在Access中有一个查询,并想知道是否有可能在没有返回行时使用where not exists子句显示每个字段的特定文本。无返回结果的访问查询

例子查询:

Select Field1, Field2, Field3 
From TableA 
Where Field1 = "test"; 

如果没有返回的结果,我想下面的返回:

Field1 = "test" 
Field2 = "not provided" 
Field2 = "not provided" 

回答

0

通常的方式做你问的是:

Select Field1, isnull(Field2, 'Not Provided'), isnull(Field3, 'Not Provided') 

编辑 谁ops,你正在使用Access,在这种情况下,等效函数是“nz”(什么?! :P)

​​
+0

它甚至不是空,没有行返回,YESNO? – Fionnuala 2010-12-15 15:48:12

+0

作为一个好奇心的人,有没有人在Access中试过这个?因为对我而言,根本没有行被返回。换句话说,当没有行时,Nz不起作用。 – Fionnuala 2010-12-15 18:27:17

+0

如果表中没有任何内容,这将不会返回任何内容。如果数据中有空字段的行,它将返回这些错误值。 – rrrhys 2010-12-16 04:39:59

6

如何:

SELECT Field1, Field2 
FROM Table 
WHERE ID=3 
UNION ALL SELECT DISTINCT "None","None" FROM AnyTableithAtLeastOneRow 
WHERE 3 NOT IN (SELECT ID FROM Table) 
+0

如果Table为空,这将不返回行,不是吗? – phoog 2010-12-15 20:49:52

+0

您可以使用任何表格,包括系统表格,这些表格保证不为空。 – Fionnuala 2010-12-15 20:52:43

+0

我需要创建表AnyTableithAtLeastOneRow与我希望这个工作的值? – Rick 2010-12-17 12:52:41