在SQL Server的From部分中给出case when语句值,可以使用子查询或者公共表表达式(CTE)来实现。
SELECT *
FROM (
SELECT column1, column2,
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE value3
END AS new_column
FROM your_table
) AS subquery
WHERE new_column = 'some_value';
在上述示例中,我们在子查询中使用了case when语句,并将其结果作为新的列(new_column)引入到From部分。然后,我们可以在外部查询中使用这个新的列进行过滤或其他操作。
WITH cte AS (
SELECT column1, column2,
CASE
WHEN condition1 THEN value1
WHEN condition2 THEN value2
ELSE value3
END AS new_column
FROM your_table
)
SELECT *
FROM cte
WHERE new_column = 'some_value';
在上述示例中,我们使用WITH关键字创建了一个CTE(cte),其中包含了case when语句。然后,我们可以在外部查询中引用这个CTE,并使用其中的列进行过滤或其他操作。
无论是使用子查询还是CTE,都可以在From部分中给出case when语句的值,并在后续的查询中使用这个值进行进一步的操作。
领取专属 10元无门槛券
手把手带您无忧上云