【发布时间】:2011-11-16 21:23:26
【问题描述】:
我正在尝试在我当前的 SQL INSERT INTO 语句中添加一个查询。下面是我的表格和当前的 sql 语句。
我有 3 张桌子:
Table1:用户 ID、用户名。
Table2:用户 ID、状态。
Table3:用户 ID、用户名、问题
目前我只有 3 个 SELECT 语句满足上述 3 个检查并将结果插入 Table3:
1.
Insert in to Table3(userid,issue)
SELECT t1.userid,'check no.1'
FROM table1 t1
FULL OUTER JOIN table2 t2 ON t1.userid = t2.userid
where t1.userid not null and t2.userid is null
2.
Insert in to Table3(userid,issue)
SELECT t1.userid,'check no.2'
FROM table1 t1
inner JOIN table2 t2 ON t1.userid = t2.userid
where t2.status = 'DELETE'
3.
Insert in to Table3(userid,issue)
SELECT t2.userid,'check no.3'
FROM table2 t2
right outer JOIN table2 t2 ON t1.userid = t2.userid
where t2.status <> 'DELETE' and t1.userid is null
现在我想添加另一个额外的检查,即在 T1 和 T2 中检查重复的用户 ID:
- 检查具有相同大写字母的相同用户 ID(例如 E01 和 E01 不应存在)
- 检查相同的用户 ID 但不同的大写(例如 E01 和 e01 不应存在)
如何编写专门检查重复用户 ID 的第 4 个 sql 查询?
感谢您的帮助。
【问题讨论】:
-
默认情况下 SQL 查询不区分大小写。
-
@BrandonMoore:有风险的语句 - SQL Server 中的大小写敏感性取决于用于数据库、表和/或列的 排序规则 .... 可以 区分大小写或不区分大小写...
-
@Mark Care 打赌他的排序规则是否区分大小写?我不喜欢赚快钱 :) 但是,是的,我知道你是对的。
-
@BrandonMoore 所以我不可能检查是否区分大小写?如果我想检查重复项,可以吗?
-
不,这不是不可能的。您可以在查询中指定排序规则,但默认情况下它不区分大小写(除非您的数据库的排序规则设置为区分大小写,但这不太可能)。看起来你不希望它区分大小写,所以这个默认行为是你想要的,对吧?