从多个表中选择的sql查询

从多个表中选择的sql查询,sql,sql-server,Sql,Sql Server,我只有一个表,该表有3个值对应一个记录。 例如: 记录1 根据id的值 按日期计算的价值 默认值 我必须以这样一种方式编写查询:它按照以下方式选择值 if values present for id then select values by id if not then if values present for dates then select by dates if not Then if values for default taken 我应该如何编写单个SQL查

我只有一个表,该表有3个值对应一个记录。 例如:

记录1

  • 根据id的值
  • 按日期计算的价值
  • 默认值
  • 我必须以这样一种方式编写查询:它按照以下方式选择值

    if
      values present for id then select values by id
    if not
    then 
       if values present for dates then select by dates 
    if not
       Then if values for default taken
    
    我应该如何编写单个SQL查询来选择值

    请记住,始终存在默认值,但可能没有id和日期的值。

    您需要使用语句

    大概是这样的:

    SELECT  CASE WHEN id IS NOT NULL THEN id
                WHEN dates IS NOT NULL THEN dates
                ELSE [default]
            END
    FROM table1
    INNER JOIN table 2 ON table1.id = table2.id
    .
    .
    .
    

    依此类推

    我创建了一个临时表并按id插入,然后检查是否有值,然后再次按日期插入,再次查看是否有值,然后插入默认值,但这不是我想要的一个好解决方案。这有点不清楚,当你说“存在值”时,是指每行还是整个表?(即,检查每一行返回的值,还是先检查并选择整个表的列?)我的3个表实际上是由多个表的连接创建的,所以您需要将每个表视为单独的新表,然后将联接加入到SELECT语句中。