数据转换通常需要逆透视,通常使用聚合函数来实现。然而,不聚合的旋转也是可能的。
考虑一个表,其中每行代表一个客户,包括 CustomerID、DBColumnName 和相应的数据。 目标是透视这些数据,根据每个客户的 DBColumnName 将其数据组织到单独的列中。
<code class="language-sql">SELECT CustomerID, MIN(CASE WHEN DBColumnName = 'FirstName' THEN Data END) AS FirstName, MIN(CASE WHEN DBColumnName = 'MiddleName' THEN Data END) AS MiddleName, MIN(CASE WHEN DBColumnName = 'LastName' THEN Data END) AS LastName, MIN(CASE WHEN DBColumnName = 'Date' THEN Data END) AS Date FROM table GROUP BY CustomerID;</code>
此 T-SQL 查询使用条件逻辑(CASE 语句)根据 DBColumnName 选择数据。 MIN()
函数确保为每个客户的列仅选择一个值。 这可以有效地转换数据,而无需使用传统意义上的聚合,将每个客户的属性组织到不同的列中。 此方法避免了处理非数字数据时与聚合相关的潜在问题。
以上是如何在不使用聚合函数的情况下透视 T-SQL 数据?的详细内容。更多信息请关注PHP中文网其他相关文章!