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

SELECTTEMP.ROWID,P.ID,P.SORT,P.PDT_BASIC_CODE,P.PDT_BASIC_TITLE,P.PDT_TYPE_TITLE,P.PD... 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

一定要用别名,因为别人的工具类写好了,自动生成的就是这个,不好弄
展开
 我来答
百度网友e7b6a5ad0
推荐于2017-09-05 · TA获得超过175个赞
知道小有建树答主
回答量:222
采纳率:100%
帮助的人:209万
展开全部

使用子查询呗

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 也放到子查询里面,晕还有字数限制

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

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式