t-sql更新问题

t-sql更新问题,sql,sql-server,sql-server-2005,tsql,Sql,Sql Server,Sql Server 2005,Tsql,tbl\U指标 grp_nbr, sect_nbr, indicat 001234 100 p 002345 101 s order_id, grp_id 5000 333 5001 555 5002 555 5003 555 5004 444 5005 444 5006

tbl\U指标

grp_nbr,   sect_nbr,   indicat  
001234     100         p  
002345     101         s
order_id,       grp_id
5000            333
5001            555
5002            555
5003            555
5004            444
5005            444
5006            222
tbl_集团

grp_id,    grp_nbr,    sect_nbr,     indicat  
333        001987      100           a  
555        001987      100           p  
444        002987      101           s
222        02987       101           y
此处(在
tbl_组中)
grp_id
是主键

待定订单

grp_nbr,   sect_nbr,   indicat  
001234     100         p  
002345     101         s
order_id,       grp_id
5000            333
5001            555
5002            555
5003            555
5004            444
5005            444
5006            222
tbl\u顺序中,
grp\u id
tbl\u组中
grp\u id
的外键

在表
tbl\u指示器
中,对于一组
grp\u nbr
sect\u nbr
有一个
标记
,对于同一组
grp\u nbr
sect\u nbr
而言,表
tbl\u组中有一个正确的
标记
(555,1100,p)和一个垃圾
标记
(333,100,a),但这两个
grp_id
(333555)都存在于表
tbl_订单中

这里还有一件事是
grp\u nbr
组表(22202987101,y)中的垃圾数据(indicat)比
tbl\u indicat
中的
grp\u nbr
少一个字符长度。它应该使用“LIKE”操作符

我们如何处理这个问题

现在我需要更新
tbl\u order
表,这样垃圾
grp\u id
s应该被正确的
grp\u id
s替换

输出应该是:

tbl\U订单

order_id,       grp_id
5000              555
5001              555
5002              555
5003              555
5004              444
5005              444
5006              444
如果
tbl_indicat
tbl_grp
表中的列数据相同,我已经有了答案

答案是“威利博士的徒弟”


但是如何处理数据是否不同(比如在开始时缺少一些字符串)?

欢迎使用StackOverflow:如果您发布代码、XML或数据示例,请在文本编辑器中突出显示这些行,然后单击编辑器工具栏上的“代码示例”按钮(
{}
),以很好地格式化和语法突出显示它!如果将列强制转换为数字并进行数字比较,则可以忽略前导零。如何确定哪些是“垃圾”记录?我无法将其转换为数字b/c。我的一些数据包含字符,如果我在tbl_组和tbl_指示符表中找不到grp_nbr和sect_nbr对应组的指示符值,则该rec在tbl_组表中是垃圾rec。另外,请避免在标题中添加(帮助我),尽量使标题与你的问题更相关。