更新分区第一行中的值。SQLAnywhere 17

更新分区第一行中的值。SQLAnywhere 17,sql,sybase,sqlanywhere,Sql,Sybase,Sqlanywhere,给定一个表T 身份证件 FKey col_值 1. 1. 无效的 2. 1. 无效的 3. 2. 无效的 4. 3. 无效的 5. 4. 无效的 6. 4. 无效的 7. 4. 无效的 8. 5. 无效的 9 5. 无效的 核心ANSI SQL解决方案,预计可在任何dbms上执行: UPDATE T t1 SET Value = 1 WHERE id = (SELECT MIN(id) FROM T t2 WHERE t1.fkey = t2.fkey) 请注意,VALUE是一个SQL保留字(

给定一个表T

身份证件 FKey col_值 1. 1. 无效的 2. 1. 无效的 3. 2. 无效的 4. 3. 无效的 5. 4. 无效的 6. 4. 无效的 7. 4. 无效的 8. 5. 无效的 9 5. 无效的
核心ANSI SQL解决方案,预计可在任何dbms上执行:

UPDATE T t1
SET Value = 1
WHERE id = (SELECT MIN(id) FROM T t2 WHERE t1.fkey = t2.fkey)

请注意,
VALUE
是一个SQL保留字(),可能需要将其分隔为
“VALUE”
,或者可能是
[VALUE]

,谢谢你这么做:)我被卡住了!我已将问题从“Value”更新为“col_Value”,以避免混淆,因为表被简化,名称是任意的。@GordonLinoff确实如此。我刚试过。我只是在别名前面加了一个AS,因为我发现它更可读。@C0nan。在这种情况下,我不喜欢
作为
,但很高兴知道它是有效的。