"Majors"という列があり、その列からすべてを取得したいが、最初の文字が重複するものは除外したい。 私はAMSTとADIBを持っていたかのように、それらのうちの1つだけが表示され、不確定になります。個別の先頭文字を取得して、列全体を返す
もし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を持っていたら、どの人が最初に現れるべきかをどのように知ることができますか?降順?これは「結果がAMSTであろう」ということです。しかし、後で「CSCI CENG ..」は、CENGが望む結果を持ちます。 – plditallo
他の行を削除する理由は、異なる結果があるため、不明です。また、サブクエリを非修飾サブクエリとともに使用することは、うまくスケールされません。 –