我正在使用下面的查询,该查询为我提供了所有报告及其Excel格式ID 例如1 = Excel 2007,2 = XLSX,3 = CSV
SELECT Reportname AS 'ReportName', Excelformatid AS 'Excel Format' FROM reports;
是否可以在输出中获取实际格式而不是ID?
我浏览了下面的链接,但它告诉我如何只考虑特定的列值而不是全部来更改输出。
'IF' in 'SELECT' statement - choose output value based on column values
答案 0 :(得分:1)
您可以使用CASE
声明
SELECT
Reportname AS 'ReportName',
CASE
WHEN Excelformatid = 1 THEN 'Excel 2007'
WHEN Excelformatid = 2 THEN 'XLSX'
WHEN Excelformatid = 3 THEN 'CSV'
END CASE AS 'Excel Format'
FROM
reports
有关文档
,请参阅here答案 1 :(得分:1)
最简单的方法是创建一个查找表并进行连接,但是如果你没有那个可用,那么CASE就可以了。
SELECT
Reportname AS 'ReportName',
CASE Excelformatid
WHEN 1 THEN 'Excel 2007'
WHEN 2 THEN 'XLSX'
WHEN 3 THEN 'CSV'
ELSE 'Unknown'
END AS 'Excel Format'
FROM reports;
使用这样的数据实现查找表(让我们称之为'格式')会很容易:
+---------------+------------+
| Excelformatid | name |
+---------------+------------+
| 1 | Excel 2007 |
| 2 | XLSX |
| 3 | CSV |
+---------------+------------+
然后你可以像这样使用连接:
SELECT Reportname, formats.name
FROM reports
LEFT JOIN formats USING(Excelformatid)
答案 2 :(得分:0)
尝试:
SELECT
Reportname AS 'ReportName',
CASE
WHEN Excelformatid = '1' THEN 'Excel 2007'
WHEN Excelformatid = '2' THEN 'XLSX'
WHEN Excelformatid = '3' THEN 'CSV'
END AS 'Formate Not Available'
FROM
reports
此外,您可以制作masterformat表并加入报告,为您提供动态结果