生成 ID 为 T-SQL 的 DISTINCT 列表
Generate DISTINCT Lists with ID T-SQL
为了在 SSRS 多 select 下拉菜单中使用,我需要生成多个 DISTINCT 值列表。
这很容易做到。 Select DISTINCT Department from DimEmployee
为了设置 SSRS 默认值,您的数据集中也必须有一个 ID 字段。上述查询无法实现这一点
我需要为我的不同列表中的每条记录分配一个任意的 uniqueID
感谢任何建议。
最终输出为:
Select * From dsDeptList
结果...
ID | DeptName
1 | DeptName1
2 | DeptName2
etc.....
只需包含两次 EmployeeID 列(使用列别名)。将其用作 ID 和值。 DISTINCT 保证它在结果集中是唯一的。
请尝试以下代码:
CREATE TABLE #Test(EmpName VARCHAR(10));
INSERT #Test VALUES('A'),('A'),('B'),('C'),('C');
SELECT DISTINCT DENSE_RANK() OVER (ORDER BY EmpName) ID,EmpName
FROM #Test;
DROP TABLE #Test;
希望对您有所帮助。
我认为 GROUP BY 应该可以解决您的问题
SELECT EmployeeID,EmpName FROM YourTable
GROUP BY EmployeeID,EmpName
你一定会避免重复
为了在 SSRS 多 select 下拉菜单中使用,我需要生成多个 DISTINCT 值列表。
这很容易做到。 Select DISTINCT Department from DimEmployee
为了设置 SSRS 默认值,您的数据集中也必须有一个 ID 字段。上述查询无法实现这一点
我需要为我的不同列表中的每条记录分配一个任意的 uniqueID
感谢任何建议。
最终输出为:
Select * From dsDeptList
结果...
ID | DeptName
1 | DeptName1
2 | DeptName2
etc.....
只需包含两次 EmployeeID 列(使用列别名)。将其用作 ID 和值。 DISTINCT 保证它在结果集中是唯一的。
请尝试以下代码:
CREATE TABLE #Test(EmpName VARCHAR(10));
INSERT #Test VALUES('A'),('A'),('B'),('C'),('C');
SELECT DISTINCT DENSE_RANK() OVER (ORDER BY EmpName) ID,EmpName
FROM #Test;
DROP TABLE #Test;
希望对您有所帮助。
我认为 GROUP BY 应该可以解决您的问题
SELECT EmployeeID,EmpName FROM YourTable
GROUP BY EmployeeID,EmpName
你一定会避免重复