我有一个表格,其中包含产品名称,销售率和税额等三栏。如果产品名称重复,那么我需要输出产品名称上的第二行应该是空的,并且销售费率和税额应该在每一行中都有。这意味着第一个产品名称应该再次将其重复设置为空
我的表格看起来像这样
Product Name SalesRate TaxAmount
Apple 100 10
Lemon 50 5
Apple 120 12.5
我需要像这样的输出
Product Name SalesRate TaxAmount
Apple 100 10
Lemon 50 5
120 12.5
答案 0 :(得分:3)
您可以将CTE与ROW_NUMBER
:
WITH CTE AS
(
SELECT [Product Name], SalesRate, TaxAmount,
RN = ROW_NUMBER () OVER (PARTITION BY [Product Name]
ORDER BY [Product Name], SalesRate, TaxAmount)
FROM dbo.TableName
)
SELECT [Product Name] = CASE WHEN RN > 1 THEN '' ELSE [Product Name] END,
SalesRate,
TaxAmount
FROM CTE
而不是ORDER BY [Product Name], SalesRate, TaxAmount
使用适当的订单。
以下是一个包含新示例数据的演示:http://sqlfiddle.com/#!3/4bf55/4/0