[英]How to use aliased column day in WHERE clause?
我對此查詢有疑問:
SELECT DAYOFYEAR(t.ts_start) AS 'day', YEAR(t.ts_start) AS year, t.o AS value FROM Cryptoforecast_ETH_BTC_1h AS t
當我運行它會顯示結果。 現在我想過濾一天添加這樣的WHERE
語句
SELECT DAYOFYEAR(t.ts_start) AS 'day', YEAR(t.ts_start) AS year, t.o AS value FROM Cryptoforecast_ETH_BTC_1h AS t WHERE 'day'=157
但這沒有結果和警告:
Truncated incorrect DOUBLE value: 'day'
問題是什么?
您不能在WHERE
子句中使用別WHERE
。 因此,您實際上並沒有將列值與int進行比較。
WHERE 'day'=157
相反,您可以使用
WHERE DAYOFYEAR(t.ts_start) = 157
注意:列別名無需使用單引號。
只需在WHERE
子句中重復調用DAYOFYEAR
:
SELECT
DAYOFYEAR(t.ts_start) AS day,
YEAR(t.ts_start) AS year,
o AS value
FROM Cryptoforecast_ETH_BTC_1h
WHERE DAYOFYEAR(t.ts_start) = 157;
或者,如果要使用day
別名,則可以使用重載的HAVING
子句來使用:
SELECT
DAYOFYEAR(t.ts_start) AS day,
YEAR(t.ts_start) AS year,
o AS value
FROM Cryptoforecast_ETH_BTC_1h
HAVING day = 157;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.