我使用VS2005 C#和SQL Server 2005。我想,以形成具有以下條件的SQL查詢:SQL檢查表重複的用戶名
在表1 TB1檢查重複的用戶其中TB1擁有多臺[Emp.Name]
編輯:
簡單地說,如果我只是重複檢查爲[emp name]
,T我無法選擇[employeeID]
?
因爲如果我使用
INSERT INTO DuplicateUserInTb1(EmployeeID, [Emp Name], Status, Issue)
SELECT tb1.EmployeeID, tb1.[Emp Name], 'Active', 'Duplicated user in Table1'
FROM Table1 tb1 GROUP BY tb1.[employeeID], tb1.[emp name] HAVING COUNT(tb1.[emp name]) >1
我將無法看到任何重複插入[emp name]
行。
但是,如果我用
INSERT INTO DuplicateUserInTb1([Emp Name], Status, Issue)
SELECT tb1.EmployeeID, tb1.[Emp Name], 'Active', 'Duplicated user in Table1'
FROM Table1 tb1 GROUP BY tb1.[emp name] HAVING COUNT(tb1.[emp name]) >1
我能夠檢索複製[emp name]
,但是,如果沒有[employeeID]
。
EDITED:
由Zohalib和分別米哈爾Powaga提供這些2個查詢工作:
INSERT INTO DuplicateUserInTb1(EmployeeID, [Emp Name], Status, Issue)
select t.emp_id, t.empname, t.active, t.du
from (select s1.emp_id, s1.empname,'Active' as active, 'Duplicate User' as du,
ROW_NUMBER() OVER (PARTITION BY s1.empName ORDER BY s1.empName) as rowNum
from table s1,
(select emp_name, count(*)
from table
group by emp_name
having count(*) > 1) s2
where s1.emp_name = s2.emp_name
) t where t.rowNum = 1
錯誤:無柱爲第2欄指明's2
insert into DuplicateUserInTb1(EmployeeID, [Emp Name], Status, Issue)
select employeeID, [emp name], 'Active', 'Duplicated user in Table1'
from Table1 t1
join (
select [emp name]
from Table1
group by [emp name]
having count(*) > 1
) t on t1.[emp name] = t.[emp name]
錯誤:* Ambiguous column name '[Emp name]'
希望得到任何幫助,謝謝。
此查詢在INSERT中有3列,但SELECT中有4列? –
我的錯誤。已編輯:爲SELECT語句添加了附加列 – user1084683
您正在插入並從同一張表中進行選擇。你想達到什麼目的?我以爲你在別的地方移動它們。 – Kangkan