只是想知道是否有办法根据最多添加4个字段输出未存储的结果?
有一张表格,其中包含不同类别,成人,儿童和工作人员服务的乘客数量,我想根据未存储的这些字段的结果尝试输出一个数字。
例如,如果添加的结果是> 15,则输出45,如果> 9输出35.输出是所需教练的大小。
我知道我可以在提取数据后在Excel中执行此操作但是想知道它是否可以在数据之前完成并包含在数据中吗?
任何建议和帮助表示赞赏。
答案 0 :(得分:3)
根据您使用的SQL程序,大多数提供CASE WHEN
语句(请参阅此SQL Fiddle example)
CREATE TABLE CaseValues(
Value INT
)
INSERT INTO CaseValues
VALUES (1)
, (16)
, (9)
SELECT CASE WHEN Value > 15 THEN 45
WHEN Value BETWEEN 6 AND 14 THEN 35
ELSE 25 END AS Result
FROM CaseValues
您还可以在多个列see this example上使用CASE WHEN
。
答案 1 :(得分:2)
标准SQL CASE
表达式是与Excel IF(..)
函数最接近的等价物:
SELECT
CASE WHEN Col1=Col2 THEN 'Foo'
WHEN Col1>Col2 THEN 'Bar'
WHEN Col3 Is NULL THEN Col4
ELSE 'unknown'
END As [CaseColumn]
FROM YourTable
答案 2 :(得分:1)
您可以通过查询数据来执行此操作:
select t.*,
(case when Adult + Child + Infant + staff > 15 then 45
when Adult + Child + Infant + staff > 9 then 35
end) as CoachSize
from t;
您也可以使用view
执行此操作,以便它可以像桌子一样使用:
create view vw_t as
select t.*,
(case when Adult + Child + Infant + staff > 15 then 45
when Adult + Child + Infant + staff > 9 then 35
end) as CoachSize
from t;
并且,在某些数据库中,您可以将计算列直接添加到表定义中。
答案 3 :(得分:0)
您可以使用CASE语句。这是语法。
SELECT
CASE WHEN DayOfBirth > 15
THEN 45
WHEN DayOfBirth > 9
THEN 35
ELSE
0
END
FROM BirthDaysTable