AS別名 「不能用在CASE中,只能顯示結果時用」

2021-06-07 08:08:00 字數 929 閱讀 3725

1、正確 sql

select

cntry_name,

cntry_continent as continent,

case -- 注意:case用的字段 是表的真正欄位名 cntry_continent(「不是別名 continent」 哦,親)

when cntry_continent is null then 'continent is null'

else cntry_continent

end as marvin_case_when_then_else_end -- 此列的列名是:marvin_case_when_then_else_end

from

ei.countries;

2、錯誤 sql

select

cntry_name,

cntry_continent as continent,

case -- 注意:case中用的字段 是別名 continent(這樣不對,執行出錯)

when continent is null then 'continent is null'

else cntry_continent -- 注意:cntry_continent 是表的真正欄位名,這是對的(這裡當然 也不能 用 continent)

end as marvin_case_when_then_else_end

from

ei.countries;

在貼下 正確 sql 的執行結果

MySQL 只能用localhost不能用ip連線

如果本地主機能用ip連線,但其他計算機登陸不到,錯誤時10060時,一般是防火牆問題,關閉防火牆或允許3306埠即可 登入進去後用以下命令可以檢視許可權用 mysql use mysql mysql select user,host from user mysqluser,host from use...

SQL中Delete語句表名不能用別名?!

昨天發現程式中資料分析的結果不對,重新進行分析後,原資料仍在,有值的字段被累計。心說,不對啊,是重新生成記錄後才分析的啊。難道忘了delete了?查 發現有刪除語句。於是在查詢分析器中執行,報錯。反覆試幾次,明白了,delete from不認表名別名!回頭想下,當初程式改完後主要是在oracle中測...

C 有哪幾種情況只能用初始化列表,而不能用賦值?

c 有哪幾種情況只能用初始化列表,而不能用賦值?1 對於const和reference型別成員變數,它們只能夠被初始化而不能做賦值操作,因此只能用初始化列表 初始化與賦值是不同的 賦值是刪除原值,賦予新值,建構函式的意思是先開闢空間然後為其賦值,只能算是賦值,不算初始化 初始化列表就不一樣了,開闢空...