sql嵌套查询中,子查询需要用到父查询的列值,这个怎么写?

比如,我有一个会员表,表中一列为权限(值为1,3,5,7)这样的值,我想将其中有3权限的会员选出来,写的数句如下:select会员名from会员表where3in(sel... 比如,我有一个会员表,表中一列为 权限(值为 1,3,5,7)这样的值,我想将其中有3权限的会员选出来,写的数句如下:
select 会员名 from 会员表 where 3 in (select col from dbo.split(权限,',')) dbo.split为自定义函数,3为一个动态值。
查询出错,提示:'权限'不是可以识别的 OPTIMIZER LOCK HINTS 选项。
求解。
展开
 我来答
joychen_
推荐于2016-07-06 · TA获得超过1747个赞
知道大有可为答主
回答量:1617
采纳率:100%
帮助的人:1811万
展开全部

不知道你的函数是怎么写的,可以试试 

select 会员名 from 会员表 where 3 in (select col from dbo.split( 会员表.权限,','))
此外,我能想到3个办法。

  1. 最好把权限表拆成单独的表,一条一个权限,这样查询很方便,如果不方便,看2。

  2. 把权限值改成这样  ,1,3,5,7,  用 select 会员名 from 会员表
    where field like '*,3,*'  , 如果这样也不行,看3

  3. where field ='3' or field like '3,*' or field like '*,3' or field like '*,3,*'

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式