Bu veriler için çalışacak sahip:
NUMUNE VERİ:
IF OBJECT_ID('tempdb..#Names') IS NOT NULL
DROP TABLE #Names;
CREATE TABLE #Names(Name VARCHAR(100));
INSERT INTO #Names
VALUES
('Done'),
('Barcel'),
('Barcelona'),
('Paris'),
('Parisinos');
SORGU:
WITH CTE
AS (SELECT A.Name
, B.Name AS B_NAME
, ROW_NUMBER() OVER(PARTITION BY B.Name ORDER BY A.Name DESC) AS RN
FROM #Names AS A
LEFT OUTER JOIN #Names AS B ON A.Name LIKE B.Name+'%')
SELECT DISTINCT
Name
FROM CTE
WHERE RN = 1;
BULGULAR:
Ama şu varsa:
IF OBJECT_ID('tempdb..#Names') IS NOT NULL
DROP TABLE #Names;
CREATE TABLE #Names(Name VARCHAR(100));
INSERT INTO #Names
VALUES
('Done'),
('Barcel'),
('Barcelona'),
('Paris'),
('Parisinos'),
('Parisians');
Üstesinden istiyorum emin değilim.
Bu sorguyu çalıştırdım ve veritabanımda çalışıyor. 'done' adı için de mi düşünüldü? 'done' doğru sonuçtur – David
Hayır, anlatabildiğim kadarıyla "Bitti" ifadesini içermez. '%' Inin "0" fazla karakterin de eşleşebileceğine inanıyorum. Silmek için en az bir karakter olduğundan emin olmak istersiniz –
https://msdn.microsoft.com/en-us/library/ms179859.aspx. Temelde '_%' yap –