我有一個名爲「Majors」的列,我想從該列中獲取所有內容,但是會過濾掉任何具有重複第一個字符的內容。 如果我有AMST和ADIB,只有其中一個出現,它可以是不確定的。所以如果我有AMST,ADIB,BIOL,CSCI,CENG,EENG,那麼最終的結果可能是AMST,BIOL,CENG,EENG。獲取不同的第一個字符,返回整列
我目前擁有的是:
DECLARE @VTest table(majName varchar(100))
INSERT INTO @VTest (majName)
SELECT DISTINCT TOP 5 Major FROM MajorTbl ORDER BY Major desc
--For some reason returns all the rows despite it only giving distincts (Would return AMST and ADIB, even though it should only give one of those and not both)
SELECT * FROM @VTest
WHERE SUBSTRING(majName, 1, 1) =
(SELECT DISTINCT SUBSTRING(CONVERT(varchar(100), [@VTest].majName), 1, 1) as c)
我如何能得到我想要的輸出任何想法?
請用您正在使用的數據庫(它似乎是SQL Server)標記您的問題。 –
如果你有AMST,ADIB我們怎麼知道哪一個應該先出現?降序?這就是「結果可能是AMST ..」意味着......但後來「,CSCI CENG ..」具有CENG的預期結果,這將是上升的。 – plditallo
刪除其他行的原因尚不清楚,因爲它們的結果不同。此外,使用具有不相關子查詢的子字符串不會很好地擴展。 –