Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
sql server在select中选择_Sql_Sql Server 2008 R2 - Fatal编程技术网

sql server在select中选择

sql server在select中选择,sql,sql-server-2008-r2,Sql,Sql Server 2008 R2,假设我有以下问题: select ID, ActualDate, DueDate from table1 我需要做的是添加另一个名为Flag的字段 如果ActualDate大于DueDate,则会将其标记为“Y” select ID, ActualDate, DueDate, CASE WHEN ActualDate > DueDate THEN 'Y' ELSE 'N' END as Flag fr

假设我有以下问题:

    select ID, ActualDate, DueDate
    from table1
我需要做的是添加另一个名为Flag的字段 如果ActualDate大于DueDate,则会将其标记为“Y”

    select ID, ActualDate, DueDate,
     CASE  
      WHEN ActualDate > DueDate THEN 'Y' 
     ELSE 'N' 
      END as Flag 
     from table1
由于我得到的列名称ActualDate无效,因此上述方法不起作用。无效的列名DueDate。 我需要做的是在select中进行选择,如下所示:

    select ID, ActualDate, DueDate, 
    CASE  
     WHEN ActualDate > DueDate THEN 'Y' 
     ELSE 'N' 
    END as Flag  
    from
    (select ID, ActualDate, DueDate
     from table1) tbl1 
     )

如果表中有字段,则无需子查询即可执行以下操作:

select ID, 
    ActualDate, 
    DueDate,
    CASE  
        WHEN ActualDate > DueDate 
        THEN 'Y' 
        ELSE 'N' 
    END as Flag 
FROM table1
您可以使用子查询,但不需要:

select ID, 
    ActualDate, 
    DueDate, 
    CASE  
        WHEN ActualDate > DueDate 
        THEN 'Y' 
        ELSE 'N' 
    END as Flag  
FROM
(
    select ID, ActualDate, DueDate
    from table1
) tbl1 

什么在
案例中不起作用?如果在末尾删除多余的
,那么上一个查询应该可以运行。为什么第一个版本不能运行?“我觉得很好。@Gordon Linoff-我得到的列名ActualDate无效。无效的列名DueDate-请advise@NatePet然后发布实际的查询。如果您的第一个查询有效,那么我看不出这些列(
ActualDate
DueDate
)如何不存在于
表1
@NatePet上。如果是这样,那么您的第一个查询将不起作用。列名必须是表中的名称。也许您应该在问题中包括表中所有列的列表。Flag实际上不是表中的字段,而是我动态创建的字段。表中只有ID、ActualDate和DueDate。标志不存在-请通知这无关紧要,您正在使用
ActualDate
DueDate
字段值来创建
标志
列。您的字段名称是什么?