日期:2014-05-17  浏览次数:20941 次

将全列转换为大写,报‘违反唯一性约束条件’错误?
情况如下:
select * from users;
........
607 rows selected
 
SQL> select count(distinct db_user) from users;
 
COUNT(DISTINCTDB_USER)
----------------------
                   607
后来仔细查看users,发现db_user字段中包含少许的含有数字的值,如‘a1bbc2’,'a2bbc2'。
怎样在转化成大写的时候,将数字也一同带过来?
select

------解决方案--------------------
不是数字的问题吧??
看下下面sql的结果
select upper(db_user), count(*)
  from users
having count(*) > 1
 group by upper(db_user);


------解决方案--------------------
upper转换的时候 不是就只转换字母吗 和数字没半毛钱关系 

lz应该查询 是不是存在转换前一个是大写一个是小写 转换后都是大写冲突了

直接查询 

select upper(db_user),count(*)
from users
group by upper(db_user)