现有一table,格式如下 序号 字段1 字段2
1 A 1,2,3,4
2 B 2,3
3 C 2,4
4 D 1,4
5 E 1,3,4
…… 字段2 是字符型 ,是另一张表的ID号 现在我将以字段2的值来查询另一张表的相应记录 请问如何查询PS:我网上查到的说用charindex比较容易实现
1 A 1,2,3,4
2 B 2,3
3 C 2,4
4 D 1,4
5 E 1,3,4
…… 字段2 是字符型 ,是另一张表的ID号 现在我将以字段2的值来查询另一张表的相应记录 请问如何查询PS:我网上查到的说用charindex比较容易实现
解决方案 »
- C#如何动态添加自定义属性?
- DataSet怎么转化成Access数据
- 一个简单连接数据库问题
- 在C#2005中没有可视化的打印控件吗?
- 问个简单的问题
- 怎么把TextBox里面的内容导出为txt啊
- 刚装好了水晶报表,一头雾水,没有发现能在VS环境中进行报表设计的界面,在哪儿找到?
- 解决后会有100分的额外奖励!!formsauthentication.setauthcookie(username,false)的cookie.value问题
- .net提供的类型里面,哪些种类的Equals()和==返回同样的结果,哪些不一样?
- 如何在c#程序中将richtext 转换成html?
- C# 窗体显示的顺序
- 【求助】控件循环遍历,添加的问题!!!
A ID
a1 1,2,3,4
a2 2,4
AA 2,4,5T2:
ID VALUES
1 AFAFASF
2 ASFDSADFAS
3 AFASDF
4 ADFAFASDFA
SELECT * FROM
T1
LEFT JOIN
T2
on
charindex(RTRIM(T2.ID) ,RTRIM(T1.ID)) > 0
不知是否为楼主想要的。
t1
id 字段1 user——grant
1 A 1,2,3,4
2 B 2,3
3 C 2,4
4 D 1,4
5 E 1,3,4 t2
id 字段1 字段2
1 A a
2 B b
3 C c
4 D d
5 E e
select * from table1 where convert(nvarchar(10),id)+',' in (select 字段2+',' from table)
ps:id都是int类型,grant是varchar类型
(
id int,
字段1 varchar,
[user] nvarchar(50)
)insert into #table1(id,字段1,[user])
values(1,'A','1,2,3,4')
insert into #table1(id,字段1,[user])
values(2,'B','2,3')
insert into #table1(id,字段1,[user])
values(3,'C','2,4')
insert into #table1(id,字段1,[user])
values(4,'D','1,4')
insert into #table1(id,字段1,[user])
values(5,'E','1,3,4')create table #table2
(
id int,
字段1 varchar,
字段2 varchar
)insert into #table2(id,字段1,字段2)
values(1,'A','a')
insert into #table2(id,字段1,字段2)
values(2,'B','b')
insert into #table2(id,字段1,字段2)
values(3,'C','c')
insert into #table2(id,字段1,字段2)
values(4,'D','d')
insert into #table2(id,字段1,字段2)
values(5,'E','e')
declare @str nvarchar(50)
select @str = [user] from #table1 as temptable1
where id = 1declare @sql nvarchar(4000)
set @sql = 'select [字段2] from #table2
where convert(nvarchar,id) in (' + @str +')'exec( @sql)把上面的语句改成存储过程就行了
不过我从来没用过存储过程啊,有点看不懂,特别是那个
where id=1
是什么意思啊?不能自己选择的吗?
还有你写的字段2,其实就是表2的id,麻烦你能帮忙改一下吗?
@table1ID int
AS
BEGIN
SET NOCOUNT ON;
--根据table1的ID获得table1的[字段2]
declare @str nvarchar(50)
select @str = [字段2] from #table1
where id = @table1ID declare @sql nvarchar(4000)
set @sql = 'select * from #table2
where convert(nvarchar,id) in (' + @str +')' exec( @sql) END
GO
--调用存储过程
exec myProcedure 1
还是ypacyhero的方法好,学习了。我的只能对table1中的记录一条一条的去查询,不能像ypacyhero的一样,一下只全出来。o(∩_∩)o...