[英]How can I use a created column within a query, within the same query?
讓我說
CASE WHEN apples.fruits = 'Macintosh' THEN 'Green' END AS FruitBasket
現在如何使用水果籃進行更改? 在這個非常查詢?
我想說
CASE WHEN FruitBasket = 'Green' THEN 'Awesome' END AS IsItGood
請記住,我希望這兩行代碼在同一查詢中運行。
您不會將第一個查詢插入到臨時表中,然后更新該臨時表嗎?
Select into #temp CASE WHEN apples.fruits = 'Macintosh' THEN 'Green' END AS FruitBasket, othercolumn1,othercolumn2
select CASE WHEN FruitBasket = 'Green' THEN 'Awesome' END AS IsItGood from #temp
最好的方法是表方法。
CREATE FUNCTION fruit_basket(apples) RETURNS text LANGUAGE SQL AS $$
CASE WHEN $1.fruits = 'Macintosh' THEN 'Green' END; $$;
然后,您可以像使用列一樣使用它,但必須對其進行限定,因為支持class.method語法。
SELECT CASE WHEN a.fruit_basket = 'Green' THEN 'Awesome' end as is_it_good
FROM apples a;
請注意,這會將a.fruit_basket轉換為fruit_basket(a),因此您不能省略a。 在fruit_basket之前。
注意,這將很好地執行,因為它對表中的元組進行操作,並且不會直接擊中表。 計划者可以將其內聯為SQL宏。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.