admin

无效的列名

sql

SELECT Ad.Id, Newspaper, 
    (select Organization from JobOrganization where JobOrganization.Id = Ad.OrganizationId) as Organization,
    Ad.PublishDate, Ad.LastDate,Ad.Url, Job.Id as JobId,
    (select JobTitle from JobTitle where JobTitle.Id = Job.TitleId) as JobTitle1,
    QualificationId, ExpInYears, CategoryId
     FROM Ad inner join Job on Ad.Id = Job.AdId
     Where JobTitle1 Like @title or @title is null
     Order by
 case When @sortCol='PublishDate' and @sortDir='ASC' Then Ad.PublishDate End ASC,
 case When @sortCol='PublishDate' and @sortDir='DESC' Then Ad.PublishDate End DESC,
 case When @sortCol='LastDate' and @sortDir='ASC' Then Ad.LastDate End ASC,
 case When @sortCol='LastDate' and @sortDir='DESC' Then Ad.LastDate End DESC

错误:列名’JobTitle1’无效。

我正在使用SQL-2008


阅读 138

收藏
2021-07-01

共1个答案

admin

恐怕您不能在where子句中使用别名,

    SELECT Ad.Id, Newspaper, 
    (select Organization from JobOrganization where JobOrganization.Id = Ad.OrganizationId) as Organization,
    Ad.PublishDate, Ad.LastDate,Ad.Url, Job.Id as JobId,
    (select JobTitle from JobTitle where JobTitle.Id = Job.TitleId) as JobTitle1,
    QualificationId, ExpInYears, CategoryId
     FROM Ad inner join Job on Ad.Id = Job.AdId
     Where (select JobTitle from JobTitle where JobTitle.Id = Job.TitleId)Like @title or @title is null
     Order by
 case When @sortCol='PublishDate' and @sortDir='ASC' Then Ad.PublishDate End ASC,
 case When @sortCol='PublishDate' and @sortDir='DESC' Then Ad.PublishDate End DESC,
 case When @sortCol='LastDate' and @sortDir='ASC' Then Ad.LastDate End ASC,
 case When @sortCol='LastDate' and @sortDir='DESC' Then Ad.LastDate End DESC

因此,在这种情况下,我使用的是View ..

2021-07-01