SQL 在两个值的最小值之间

SQL between min of two values

如果我必须在 SQL 服务器中编写此查询:

SELECT * 
FROM Table1 
WHERE data BETWEEN interval1 AND interval2

不使用变量怎么写?

我试试

Ksdt_TP022_Data BETWEEN     
                         (SELECT CASE 
                                WHEN sdt_TP019_InizioVal < '2014-1-1' THEN '2014-1-1' 
                                ELSE sdt_TP019_InizioVal 
                                END as b
                        from TP022_Quarto)
                         AND 
                         (SELECT CASE 
                                WHEN sdt_TP019_Fineval > '2014-12-31' THEN '2014-12-31' 
                                WHEN sdt_TP019_Fineval IS NULL THEN '2014-12-31' 
                                ELSE sdt_TP019_Fineval 
                                END as a
                            from TP022_Quarto)

但是出现编译错误

几乎问了同样的问题here

简而言之,您可以使用 UDF(用户定义函数)或 CASE 语句。

试试这个

select * from Table1 
WHERE data between 
case when fld1 < '20140101' then '20140101' else fld1 end and 
case when fld2 >'20141231 then '20141231' else fld2 end 
SELECT * 
FROM 
  Table1 
WHERE
  data BETWEEN interval1 AND coalesce(interval2, '2014-12-31')
  and data between '2014-1-1' and '2014-12-31'