select nsrsbh,nsrmc,nsr_swjg_dm,
(select czry_mc from dm_czry where czry_dm =zgswry_dm) as czry_mc,
(select swjg_jc from dm_swjg where swjg_dm=nsr_swjg_dm) as swjg_jc
from DJ_NSRXX 
where NSR_SWJG_DM LIKE SUBSTRING('13701000000',1,3)+'%' and len(ltrim(rtrim(zgswry_dm)))<=11上面这条语句执行后,报错:
子查询返回的值多于一个。当子查询跟随在 =、!=、<、<=、>、>= 之后,或子查询用作表达式时,这种情况是不允许的。
请高手帮忙!

解决方案 »

  1.   


    select nsrsbh,nsrmc,nsr_swjg_dm, 
    (select top 1 czry_mc from dm_czry where czry_dm =zgswry_dm) as czry_mc, 
    (select  top 1 swjg_jc from dm_swjg where swjg_dm=nsr_swjg_dm) as swjg_jc 
    from DJ_NSRXX  
    where NSR_SWJG_DM LIKE SUBSTRING('13701000000',1,3)+'%' and len(ltrim(rtrim(zgswry_dm))) <=11 
      

  2.   

    select nsrsbh,nsrmc,nsr_swjg_dm, 
    (select top 1 czry_mc from dm_czry where czry_dm =zgswry_dm) as czry_mc, 
    (select top 1 swjg_jc from dm_swjg where swjg_dm=nsr_swjg_dm) as swjg_jc 
    from DJ_NSRXX  
    where NSR_SWJG_DM LIKE SUBSTRING('13701000000',1,3)+'%' and len(ltrim(rtrim(zgswry_dm))) <=11 
      

  3.   

    1樓的語句衹能返回一條記錄。下面這個是完整的select a.nsrsbh,a.nsrmc,a.nsr_swjg_dm, 
    b.czry_mc, c.swjg_jc 
    from DJ_NSRXX  a
    left join dm_czry b on b.czry_dm=a.zgswry_dm
    left join swjg_jc c on c.swjg_dm=a.swjg_dm
    where NSR_SWJG_DM LIKE SUBSTRING('13701000000',1,3)+'%' and len(ltrim(rtrim(zgswry_dm))) <=11