Sql案例陈述中的数学函数

时间:2016-05-04 14:07:07

标签: sql sql-server tsql

我正在尝试提出一个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声明的新手,所以使用了这些指南:

StackOverflow

Sql School

Some Blog

1 个答案:

答案 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