[英]sql query - Invalid column name
執行以下sql查詢時出現錯誤。
SELECT
RTRIM(name) AS [Segment Name],
growth,groupid AS [Group Id],
filename AS [File Name],
CAST(size/128.0 AS DECIMAL(10,2)) AS [Size in MB],
CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2)) AS [Space Used],
CAST(size/128.0-(FILEPROPERTY(name, 'SpaceUsed')/128.0) AS DECIMAL(10,2)) AS [Available Space],
CAST((CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2))/CAST(size/128.0 AS DECIMAL(10,2)))*100 AS DECIMAL(10,2)) AS [Percent_Used]
FROM
sysfiles
WHERE
growth = 0 AND Percent_Used > 60
ORDER BY
groupid DESC
錯誤提示:
消息207,第16級,州1,第7行
無效的列名“ Percent_Used”。
為什么會出現此錯誤?
如果看到查詢的邏輯順序處理,則在選擇之前先評估where子句。 要使其工作,您需要使用派生表概念。
1. FROM
2. ON
3. OUTER
4. **WHERE**
5. GROUP BY
6. CUBE | ROLLUP
7. HAVING
8. **SELECT**
Select * from
(
SELECT
RTRIM(name) AS [Segment Name],
growth,groupid AS [Group Id],
filename AS [File Name],
CAST(size/128.0 AS DECIMAL(10,2)) AS [Size in MB],
CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2)) AS [Space Used],
CAST(size/128.0-(FILEPROPERTY(name, 'SpaceUsed')/128.0) AS DECIMAL(10,2)) AS [Available Space],
CAST((CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2))/CAST(size/128.0 AS DECIMAL(10,2)))*100 AS DECIMAL(10,2)) AS [Percent_Used]
FROM
sysfiles
) DT
WHERE growth = 0 AND Percent_Used > 60
ORDER BY groupid DESC
您正在嘗試使用已定義的列在WHERE
子句中進行過濾。 表sysfiles
中不存在此列
如果你願意,你可以換行SELECT
在另一個SELECT
做對后者的過濾SELECT
。 這樣,該列已經“存在”。
WITH cte
AS
(
SELECT
RTRIM(name) AS [Segment Name],
growth,groupid AS [Group Id],
filename AS [File Name],
CAST(size/128.0 AS DECIMAL(10,2)) AS [Size in MB],
CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2)) AS [Space Used],
CAST(size/128.0-(FILEPROPERTY(name, 'SpaceUsed')/128.0) AS DECIMAL(10,2)) AS [Available Space],
CAST((CAST(FILEPROPERTY(name, 'SpaceUsed')/128.0 AS DECIMAL(10,2))/CAST(size/128.0 AS DECIMAL(10,2)))*100 AS DECIMAL(10,2)) AS [Percent_Used]
FROM
sysfiles
)
SELECT *
FROM cte
WHERE
growth = 0
AND Percent_Used > 60
ORDER BY [Group Id] DESC
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.