1
我在Microsoft SQL Server中设置了一个视图。我展示的部分视图创建了一个名为Starch的列。我如何操纵case表达式中创建的列来判断它是高于还是低于2?已创建列的表达式
.
..
...
MAX(CASE WHEN R.ANALYTE = 'Starch' then
(CASE WHEN ISNUMERIC(R.RN5) = 1 THEN CONVERT(float,R.RN5) ELSE convert(float,0) END) end) as [Starch],
CASE
WHEN Starch > 2 THEN 'ABOVE'
ELSE 'Below' END
As 'Starch_Cautionary',
...
..
.
小心使用'ISNUMERIC()'进行转换验证。什么版本的SQL Server?此外,样本数据和预期产出将有助于此。 – scsimon
你想在同一个查询中使用创建的列Starch?或者是什么? –
这与问题无关,但除了@scsimon评论SQL Server 2012及更高版本,您可以检查[TRY_CONVERT](https://docs.microsoft.com/en-us/sql/t-sql/functions/try-convert -transact-sql)函数来取代整个IF THEN ELSE部分 –