有一个表A,格式如下:
A1, A2
G01 20
G02 21
GH01 19
GB01 20
GA01 19
GC1 19
GD01 19
有表B,格式如下:
B1, B2
G 41
GH 1
GD 1
求表A中字段A1 like 表B中的字段B1的记录
即要得到结果:
A1, A2
G01 20
G02 21
GH01 19
GD01 19
各位有什么好的写法,用PATINDEX 能实现吗?
A1, A2
G01 20
G02 21
GH01 19
GB01 20
GA01 19
GC1 19
GD01 19
有表B,格式如下:
B1, B2
G 41
GH 1
GD 1
求表A中字段A1 like 表B中的字段B1的记录
即要得到结果:
A1, A2
G01 20
G02 21
GH01 19
GD01 19
各位有什么好的写法,用PATINDEX 能实现吗?
解决方案 »
- 提取考勤信息的存储过程.
- [DBNETLIB][ConnectionWrite (send()).]一般性网络错误。请检查网络文档。 Insert Statement:
- order by 和identity一起用会出问题吗?
- 一个表,希望:当某条记录的score值减少到0,此条记录被自动删除,怎样用触发器实现呢?
- SSRS报表谁做过啊,请教一个分页的问题
- sqlserver服务启动不了了,怎么办呀?
- 如何判断msde有没有安装?
- 如何自动生成5位数以C开头的供应商代码
- sqlserver 2008 中密码设为image类型,如何查看?
- 请问SQLServer里有没有这样一个函数????(急!!在线等。。。。)
- [数据库更新]如何根据记录的时间更新对应字段的内容
- 请指教!!
where charindex(b.B1,a.A1)>0
INNER JOIN B b
ON CHARINDEX(B.B1,A.A1)>0
Go
insert TA
select 'G11', 20
union select 'G02', 21
union select 'GH01', 19
union select 'GB01', 20
union select 'GA01', 19
union select 'GC1', 19
union select 'GD01', 19Go
create table TB( B1 varchar(10),B2 int)
GO
insert TB
select 'G', 41
union select 'GH', 1
union select 'GD', 1select a1,a2 from TA a join TB b on left(a1,patindex('%[0-9]%',a1) - 1) = b1drop table ta,tb
/* 结果a1 a2
---------- -----------
G02 21
G11 20
GD01 19
GH01 19(4 row(s) affected)
*/