比如说这样一个表:对于每条记录,我想查询出所有为所有空的字段名例如:
查询No=1的记录的时候,得到的结果为Sex,Age
查询No=2的记录的时候,得到的结果为Name,Sex
查询No=3的记录的时候,得到的结果为Name,Age

解决方案 »

  1.   

    select *
    from (
    select no,'name' as fld from 这样一个表 where name is null
    union all
    select no,'sex' as fld from 这样一个表 where sex is null
    union all
    select no,'age' as fld from 这样一个表 where age is null
    ) t
    where id=1;
      

  2.   


    呵呵,你的方法很有效啊我结合这篇文章
    http://office.microsoft.com/zh-cn/access/HA102061092052.aspx?pid=CH100645772052才能理解的你sql语句.但是我还没不懂 t 是什么意思
    *****************************
    如果您希望能够辨别各个行分别来自哪个表,可以在每个 Select 语句中添加一个文本字符串并将其用作一个字段。例如,如果有两个 Select 语句,一个要检索 Products 表中的字段,另一个则要检索 Services 表中的字段,您可以在第一个语句的末尾将字符串“Product”添加为字段,而在第二个语句的末尾将“Service”添加为字段。此外,您还可以使用 AS 关键字向这些字符串分配字段别名(例如“type”),如下面的示例中所示:SELECT field1, field2, ... "Product" AS typeSELECT field1, field2, ... "Service" AS type
    该查询的输出将包括一个名为“type”的字段,其中会显示各个行是来自 Products 表,还是来自 Services 表。 
    ***********************************好了,结贴给分