oracle怎么去除查询出来的varchar2类型的''号?
--查询1select*frommenuwhereidin(3,9,207);--查询2select*fromcore_menuwhereidin(selectprfro...
--查询1
select * from menu where id in (
3,9,207
);
--查询2
select * from core_menu where id in (
select pr from privilege where id=1
);
pr是varchar2类型,查出来的结果为'3,9,207',这样的话查询2报错:无效数字,请问怎么把子查询的结果去除''号,变成查询1。 展开
select * from menu where id in (
3,9,207
);
--查询2
select * from core_menu where id in (
select pr from privilege where id=1
);
pr是varchar2类型,查出来的结果为'3,9,207',这样的话查询2报错:无效数字,请问怎么把子查询的结果去除''号,变成查询1。 展开
1个回答
展开全部
兄弟,这不是一回事。
如果我没有猜错,你的privilege表的pr字段的 保存内容直接就是 一行内容为3,9,207,而不是一行一个,这样的话不管用什么函数select pr from privilege where id=1查询出的结果都是一个字段,也就是说都是一个varchar2类型的字段,不能改为你要的那种变为三个。
想变为三个,个人认为你要将privilege想、办法变为
id pr
1 3
1 9
1 207
才行,可是这只是两个逗号,如果逗号可能有很多个,那么有的改了,而且效率只能呵呵了。
如果我没有猜错,你的privilege表的pr字段的 保存内容直接就是 一行内容为3,9,207,而不是一行一个,这样的话不管用什么函数select pr from privilege where id=1查询出的结果都是一个字段,也就是说都是一个varchar2类型的字段,不能改为你要的那种变为三个。
想变为三个,个人认为你要将privilege想、办法变为
id pr
1 3
1 9
1 207
才行,可是这只是两个逗号,如果逗号可能有很多个,那么有的改了,而且效率只能呵呵了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询