SQLServer中,在WHERE条件中使用别名,列名无效

SELECT TEMP.ROWID ,
P.ID ,
P.SORT ,
P.PDT_BASIC_CODE ,
P.PDT_BASIC_TITLE ,
P.PDT_TYPE_TITLE ,
P.PDTPRO ,
P.PDTPIC ,
P.PDTPIC1 ,
P.PDTPRICE ,
P.CUS_BASIC_CODE ,
P.CUS_BASIC_TITLE ,
P.PRICETABLENAME ,
P.BASEUNIT_TITLE ,
P.PDTSTANDARD ,
ISNULL(P.CUS_BASIC_TITLE, '') + ISNULL(P.PDT_TYPE_TITLE, '')
+ ISNULL(P.PDT_BASIC_TITLE, '') + ISNULL(P.PDTPRO, '')
+ ISNULL(P.BRAND, '') + ISNULL(P.PDTPRICE, '') AS PDT ,
P.BRAND ,
P.PDTAREA ,
P.NEWDATE ,
B.DIC_AREA_CODE ,
B.DIC_AREA_TITLE
FROM CUS_PRODUCT P
INNER JOIN CUS_BASIC B ON B.CODE = P.CUS_BASIC_CODE ,
( SELECT TOP ( ( 1 - 1 ) * 25 + 25 )
ROW_NUMBER() OVER ( ORDER BY SORT DESC ) ROWID ,ID
FROM CUS_PRODUCT P
WHERE 1 = 1
AND PDT LIKE '%四川%' 求代码能让这句生效

) TEMP
WHERE P.IFUSED = 1
AND P.ID = TEMP.ID
AND TEMP.ROWID > ( ( 1 - 1 ) * 25 )
ORDER BY TEMP.ROWID ASC

一定要用别名,因为别人的工具类写好了,自动生成的就是这个,不好弄

使用子查询呗

Select * from
(
    SELECT  TEMP.ROWID ,
        P.ID ,
        P.SORT ,
        P.PDT_BASIC_CODE ,
        P.PDT_BASIC_TITLE ,
        P.PDT_TYPE_TITLE ,
        P.PDTPRO ,
        P.PDTPIC ,
        P.PDTPIC1 ,
        P.PDTPRICE ,
        P.CUS_BASIC_CODE ,
        P.CUS_BASIC_TITLE ,
        P.PRICETABLENAME ,
        P.BASEUNIT_TITLE ,
        P.PDTSTANDARD ,
        ISNULL(P.CUS_BASIC_TITLE, '') + ISNULL(P.PDT_TYPE_TITLE, '')
        + ISNULL(P.PDT_BASIC_TITLE, '') + ISNULL(P.PDTPRO, '')
        + ISNULL(P.BRAND, '') + ISNULL(P.PDTPRICE, '') AS PDT ,
        P.BRAND ,
        P.PDTAREA ,
        P.NEWDATE ,
        B.DIC_AREA_CODE ,
        B.DIC_AREA_TITLE
    FROM    CUS_PRODUCT P
) T
INNER JOIN CUS_BASIC B ON B.CODE = T.CUS_BASIC_CODE ,
        ( SELECT TOP ( ( 1 - 1 ) * 25 + 25 )
                    ROW_NUMBER() OVER ( ORDER BY SORT DESC ) ROWID ,ID
          FROM      CUS_PRODUCT P
          WHERE     1 = 1
          AND T.PDT LIKE '%四川%'   求代码能让这句生效
          
        ) TEMP
WHERE   T.IFUSED = 1
        AND T.ID = TEMP.ID
        AND TEMP.ROWID > ( ( 1 - 1 ) * 25 )
ORDER BY TEMP.ROWID ASC

追问

这样子还是会报错啊

追答

吧inner join 也放到子查询里面,晕还有字数限制

追问

继续报错啊

追答

其实思路已经告诉你了,只要吧这个查找作为from 子句,然后吧别名的条件放到外面就可以了,我怎么可能帮你一个个去查字段呢

真麻烦 还有字数限制,上传文件还失败


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

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网