SQL - 使用IF THEN ELSE创建临时表

时间:2017-09-01 23:58:09

标签: sql if-statement

我正在尝试编写一个SQL查询,其中if输出为'FRUIT'临时表'FRUIT'是使用列'FOOD_TYPE'创建的,如果没有,则创建临时表'VEGETABLE'并使用列' FOOD_TYPE”。

这是我写的初始查询。

select *,
(CASE 
WHEN food LIKE 'APPLE'
THEN 'FRUIT' 
ELSE 'VEGETABLE'
END) AS FOOD_TYPE
from temptable

2 个答案:

答案 0 :(得分:2)

您提出的问题引发了更多问题。但话虽如此,我不相信这可以在一个声明中实现。下面的TSQL(我假设你使用的是MS SQL Server)将满足这个问题,但你提出的场景似乎有点奇怪,可能需要重新考虑。

declare @FOOD_TYPE varchar(100);
select top 1 @FOOD_TYPE = 
(CASE 
WHEN food LIKE 'APPLE' THEN 'FRUIT' 
ELSE 'VEGETABLE'
END) 
from @foods

if(@FOOD_TYPE='FRUIT') 
select FOOD_TYPE=@FOOD_TYPE into #FRUIT
else
select FOOD_TYPE=@FOOD_TYPE into #VEGETABLE

答案 1 :(得分:0)

这可以使用此查询

来实现
SELECT CASE WHEN food LIKE '%APPLE%' 
            THEN (SELECT 'FRUIT' food_type INTO #FRUIT)
            ELSE (SELECT 'VEGETABLE' food_type INTO #VEGETABLE)
       END

请注意,如果您要使用' APPLE'或任何其他值,您应该选择使用等号(=)。