是否有一种简短的方法可以在变量中指定None或值,具体取决于值?
x= value if value!= 999 else None
答案 0 :(得分:3)
result =(on_false,on_true)[condition]
declare @fromdate date = '20160101';
declare @years int = 1;
;with n as (select n from (values(0),(1),(2),(3),(4),(5),(6),(7),(8),(9)) t(n))
, dates as (
select top (datediff(day, @fromdate,dateadd(year,@years,@fromdate)))
[Date]=convert(date,dateadd(day,row_number() over(order by (select 1))-1,@fromdate))
from n as deka cross join n as hecto cross join n as kilo
/* cross join n as tenK cross join n as hundredK */
order by [Date]
)
select
d.[Date]
, OrderCount = count(o.OrderID)
from dates d
left join orders o
on convert(date,o.OrderDate) = d.[Date]
group by d.[Date]
order by d.[Date] desc
答案 1 :(得分:1)
您正在使用正确的方法来执行此操作。
但如果你坚持缩短解决方法,可以使用这种方法:
第一种方式:
{0:value}.get(value==999)
使用技巧python为False和0(hash = 0)保存相同的哈希。
第二种方式:
{999:None}.get(value,value)
使用get方法和默认值来实现此目的。
第三种方式:
[None, value][value != 999]
当第一部分代表值声明而第二部分代表布尔条件时。