我正在尝试提出一个sql语句,它将里程表转换为以千米为单位存储。如果里程表以里程存储,它就会保持原样。 转换后,它需要检查搜索参数,即里程。
我采取的步骤是使用案例陈述。
这是我目前正在使用的select语句的片段:
DECLARE
@Mileage NVARCHAR(75) = NULL,
@IsMiles BIT = 1,
@Converted NVARCHAR(75) = NULL
SELECT [Id],Odometer,IsMiles,
CASE IsMiles when 0 THEN OdometerValue * 0.62137
else Odometer end
FROM [dbo].[Vehicle]
where IsMiles = 0
无论如何都要将case语句的Result传递给ConvertedOdometer。我想使用该值来评估搜索里程参数。
有这样的情况:
(ConvertedOdometer >=0 AND ConvertedOdometer <= @Mileage)
我是Case声明的新手,所以使用了这些指南:
答案 0 :(得分:2)
也许是这样的......
DECLARE
@Mileage NVARCHAR(75) = NULL,
@IsMiles BIT = 1,
@Converted NVARCHAR(75) = NULL
select a.* from
(SELECT [Id],Odometer,IsMiles,
CASE when IsMiles=0 THEN OdometerValue * 0.62137 else Odometer end as ConvertedOdometer
FROM [dbo].[Vehicle]
where IsMiles = 0)a
where a.ConvertedOdometer >=0 AND
a.ConvertedOdometer <= @Mileage