只是想看看是否有一种方法可以输出基于最多 4 个字段的添加未存储的结果?
有一个表格,其中包含不同类别、成人、儿童婴儿和工作人员的服务乘客数量,我想尝试根据这些未存储的字段的结果输入一个数字。
例如,如果加法的结果 >15 则输出 45,如果 >9 则输出 35。输出是所需的教练的大小。
我知道我可以在提取数据后在 Excel 中执行此操作,但想知道它是否可以在之前完成并包含在数据中?
任何建议和帮助表示赞赏。
只是想看看是否有一种方法可以输出基于最多 4 个字段的添加未存储的结果?
有一个表格,其中包含不同类别、成人、儿童婴儿和工作人员的服务乘客数量,我想尝试根据这些未存储的字段的结果输入一个数字。
例如,如果加法的结果 >15 则输出 45,如果 >9 则输出 35。输出是所需的教练的大小。
我知道我可以在提取数据后在 Excel 中执行此操作,但想知道它是否可以在之前完成并包含在数据中?
任何建议和帮助表示赞赏。
根据您使用的 SQL 程序,大多数都提供CASE WHEN
语句(请参阅此SQL Fiddle 示例)
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
您还可以CASE WHEN
在多个列上使用,请参阅此示例。
标准 SQLCASE
表达式最接近 ExcelIF(..)
函数:
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
您可以通过对数据的查询来做到这一点:
select t.*,
(case when Adult + Child + Infant + staff > 15 then 45
when Adult + Child + Infant + staff > 9 then 35
end) as CoachSize
from t;
您也可以使用 a 来执行此操作,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;
而且,在某些数据库中,您可以将计算列直接添加到表定义中。
您可以使用 CASE 语句。这是语法。
SELECT
CASE WHEN DayOfBirth > 15
THEN 45
WHEN DayOfBirth > 9
THEN 35
ELSE
0
END
FROM BirthDaysTable