在T-SQL中,可以使用PIVOT和CASE语句根据字段名列选择表格。下面是两种解决方法的代码示例:
- 使用PIVOT语句:
-- 创建一个示例表格
CREATE TABLE Sales (
Product VARCHAR(10),
Year INT,
SalesAmount DECIMAL(10, 2)
);
-- 插入一些示例数据
INSERT INTO Sales VALUES ('Product A', 2018, 1000);
INSERT INTO Sales VALUES ('Product A', 2019, 1500);
INSERT INTO Sales VALUES ('Product B', 2018, 2000);
INSERT INTO Sales VALUES ('Product B', 2019, 2500);
-- 使用PIVOT语句根据字段名列选择表格
SELECT *
FROM (
SELECT Product, Year, SalesAmount
FROM Sales
) AS SourceTable
PIVOT (
SUM(SalesAmount)
FOR Year IN ([2018], [2019])
) AS PivotTable;
这将根据Year字段的值将SalesAmount进行列转换,生成一个新的表格,其中包含每个产品的销售金额。
- 使用CASE语句:
-- 创建一个示例表格
CREATE TABLE Sales (
Product VARCHAR(10),
Year INT,
SalesAmount DECIMAL(10, 2)
);
-- 插入一些示例数据
INSERT INTO Sales VALUES ('Product A', 2018, 1000);
INSERT INTO Sales VALUES ('Product A', 2019, 1500);
INSERT INTO Sales VALUES ('Product B', 2018, 2000);
INSERT INTO Sales VALUES ('Product B', 2019, 2500);
-- 使用CASE语句根据字段名列选择表格
SELECT Product,
SUM(CASE WHEN Year = 2018 THEN SalesAmount ELSE 0 END) AS [2018],
SUM(CASE WHEN Year = 2019 THEN SalesAmount ELSE 0 END) AS [2019]
FROM Sales
GROUP BY Product;
这将根据Year字段的值使用CASE语句将SalesAmount进行条件判断,生成一个新的表格,其中包含每个产品的销售金额。