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

比如,我有一个会员表,表中一列为 权限(值为 1,3,5,7)这样的值,我想将其中有3权限的会员选出来,写的数句如下:
select 会员名 from 会员表 where 3 in (select col from dbo.split(权限,',')) dbo.split为自定义函数,3为一个动态值。
查询出错,提示:'权限'不是可以识别的 OPTIMIZER LOCK HINTS 选项。
求解。

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

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

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

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

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

温馨提示:答案为网友推荐,仅供参考
相似回答