我在 SQL 查询中需要帮助以获取 table 的不同视图
I need help in SQL query to get a different view of table
我可以问 SQL 做如下的事情,我没有太多关于正在使用的 table 模式的信息,只有图像和目标。
table 看起来像这样:
ID |DEF | ATT | VALUE
---|----|-----|-----
1 | 10 | 9 | 1234
1 | 10 | 10 | 00199
1 | 10 | 11 | Eduardo
2 | 10 | 9 | 1234
2 | 10 | 10 | 00199
2 | 10 | 11 | Eduardo
这是通过这样的查询实现的:
SELECT * FROM (SELECT ID, DEF, ATT, VALUE
FROM table
WHERE DEF = 10
AND ID IN (
SELECT DISTINCT ID
FROM table WHERE VALUE = '001'
OR VALUE = 'Agu'))
WHERE ATT IN (9, 10, 11)
我怎样才能让它看起来像
ID | DEF |VALUE|VALUE1| VALUE2
---|-----|-----|------|---------
1 | 10 |1234 |00199 | Eduardo
2 | 10 |1234 |00199 | Eduardo
或者这个怎么称呼以便我可以找到更多信息?
像这样使用 pivot 函数应该会给你想要的结果
SELECT
ID,
DEF,
[9] AS Value1,
[10] AS Value2,
[11] AS Value3
FROM(SELECT
ID,
DEF,
ATT,
Value
From table) as Sourcetable
Pivot (Avg(Value) FOR ATT IN ([9],[10],[11])) AS PivotTable
我可以问 SQL 做如下的事情,我没有太多关于正在使用的 table 模式的信息,只有图像和目标。
table 看起来像这样:
ID |DEF | ATT | VALUE
---|----|-----|-----
1 | 10 | 9 | 1234
1 | 10 | 10 | 00199
1 | 10 | 11 | Eduardo
2 | 10 | 9 | 1234
2 | 10 | 10 | 00199
2 | 10 | 11 | Eduardo
这是通过这样的查询实现的:
SELECT * FROM (SELECT ID, DEF, ATT, VALUE
FROM table
WHERE DEF = 10
AND ID IN (
SELECT DISTINCT ID
FROM table WHERE VALUE = '001'
OR VALUE = 'Agu'))
WHERE ATT IN (9, 10, 11)
我怎样才能让它看起来像
ID | DEF |VALUE|VALUE1| VALUE2
---|-----|-----|------|---------
1 | 10 |1234 |00199 | Eduardo
2 | 10 |1234 |00199 | Eduardo
或者这个怎么称呼以便我可以找到更多信息?
像这样使用 pivot 函数应该会给你想要的结果
SELECT
ID,
DEF,
[9] AS Value1,
[10] AS Value2,
[11] AS Value3
FROM(SELECT
ID,
DEF,
ATT,
Value
From table) as Sourcetable
Pivot (Avg(Value) FOR ATT IN ([9],[10],[11])) AS PivotTable