sql 一个表中字段存多个数字,对应到另一个表中的值,怎么得到另个表对应的值。
表1Text1,2表2IDValue1A2B我想查表1,得到结果A,B。请各位高手帮忙。...
表1 Text
1,2
表2 ID Value
1 A
2 B
我想查表1,得到结果 A,B。请各位高手帮忙。 展开
1,2
表2 ID Value
1 A
2 B
我想查表1,得到结果 A,B。请各位高手帮忙。 展开
推荐于2016-11-21
展开全部
CREATE TABLE t1 (
Text varchar(10)
);
INSERT INTO t1 VALUES('1,2');
CREATE TABLE t2 (
id INT,
Value varchar(2)
);
INSERT INTO t2 VALUES(1, 'A');
INSERT INTO t2 VALUES(2, 'B');
SELECT
GROUP_CONCAT(t2.Value)
FROM
t2, t1
WHERE
INSTR(CONCAT(',', t1.Text, ','), CONCAT(',', CAST(t2.id as char), ',')) > 0;
+------------------------+
| GROUP_CONCAT(t2.Value) |
+------------------------+
| A,B |
+------------------------+
1 row in set (0.00 sec)
MySQL 下测试通过。
追问
sql server 中 GROUP_CONCAT不是 内置函数
追答
SELECT
cast(
STUFF(
(
SELECT
',' + Value
FROM
t2
WHERE
CHARINDEX( ',' + RTRIM(cast(t2.id as char)) + ',', ',' + t1.Text + ',' ) > 0
FOR XML PATH('')
), 1, 1, '')
as varchar(20)) as result
FROM
t1;
go
result
--------------------
A,B
(1 行受影响)
SQL Server 2008 Express 下测试通过。
展开全部
如果你是sql server的 话;方法如下
select 表2.* from 表2 where (charindex(表2.id , (select text from 表1))) <>0
select 表2.* from 表2 where (charindex(表2.id , (select text from 表1))) <>0
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
select 表2.* from 表1,表2 where 表1.text in(select id from 表2)
你测试下...
你测试下...
追问
不行。。。。
追答
select distinct 表2.* from 表1,表2 where 表1.text in(select id from 表2)
这个测试过了...是可以的..
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询