【发布时间】:2014-11-06 23:49:59
【问题描述】:
我希望使用同一行中其他列的连接值更新一列。我正在更新的列是唯一的,并且这样做的性质有时会导致重复的键错误。我希望忽略这些错误,只需更新其中一条记录并忽略其他记录。
我的查询看起来像这样:
update [Table] set Coolname = lower(Fname) + lower(Lname)
where Coolname like '%s'
and staticID=1995
and Fname is not null
and Lname is not null
现在,在 Fname 和 Lname 在两行中匹配的情况下,我只希望更新 Coolname 的第一条记录。
谢谢。 (MS SQL 服务器)
【问题讨论】:
-
忽略重复键错误并不是一个真正的好习惯......如果一个值存在一次或多次并不重要,很好,但不要将其声明为 primary_key 或唯一...... .
-
明白了,这是一个相当独特的案例,但是是必需的。
-
如何定义“第一条记录”?有什么钥匙吗?请记住,表格本身没有第一个或最后一个的概念
-
理解 Sparky....first 是无关紧要的,我应该改写“one of”。只要只更新一条记录就可以了
-
如果只是 Fname 和 Lname 的乘积,为什么还需要一个“Coolname”列?这可以通过视图来处理。只需将列定义为 SELECT LOWER(Fname) + LOWER(Lname) AS Coolname。
标签: sql sql-server