令我有一個查詢:別名與
SELECT distinct(a0.ID,a0.str)
from sev_modul_4_type1 as a0
where ((lower(a0.str) LIKE '%а%'))
,我想通過STR命令,但如果那樣做
select * from (
SELECT distinct(a0.ID,a0.str)
from sev_modul_4_type1 as a0
where ((lower(a0.str) LIKE '%а%'))
) x order by str desc
我得到一個錯誤:
ERROR: column "str" does not exist
LINE 1: ...s a0 where ((lower(a0.str) LIKE '%а%'))) x order by str desc
^
即使我使用sev_modul_4_type1.str
,a0.str
等
我該怎麼做對不對?
我也試過order by 2 desc
,但它給了我同樣的錯誤,這是確定只order by 1 desc
(這種種的ID)
'distinct'是***不是***功能。 '(a0.ID,a0.str)'是一個具有匿名行類型的**單**列。刪除這些括號。 –
如果我需要得到一個包含兩個排序後的單列,該怎麼辦? F.E. '選擇不同於( SELECT * 從sev_modul_4_type1 其中((低級(sev_modul_4_type1.str)LIKE '%а%')) 順序由STR ASC ),爲A0'是(a0.ID, a0.str)打破此類 – Ghostleg
爲什麼你想要一個包含兩個字段的列?我不知道你的意思是「打破這種狀況」。 'distinct'不是一個函數。除非你真的知道在一列中返回一個帶有兩個字段的匿名記錄類型意味着什麼,否則你不應該在列列表中包含圓括號 –