Отфильтровать строки с помощью соответствующей подстроки - PullRequest
0 голосов
/ 01 июля 2011

У меня есть запрос, который возвращает строки, которые похожи на это:

R123
R234
R345
J123

Возможно ли, чтобы строки с соответствующими подстроками не были возвращены?Так что в этом случае R123 и J123 не будут показаны в результатах.

Ответы [ 3 ]

0 голосов
/ 01 июля 2011
select 
  Value
from MyTable
group by substring(Value,2,len(Value))
having count(*) = 1
0 голосов
/ 01 июля 2011

Конечно, как на счет этого?

create table t1 (
t varchar(20) 
)

go
insert into t1 (t) values ('R123'),('R234'),('R345'),('J123')
go

select Numerals 
from (
    select SUBSTRING(t,1,1) as Prefix, SUBSTRING(t,2,999) as Numerals
    from t1) a
group by Numerals
having COUNT(*) = 1
0 голосов
/ 01 июля 2011

Я не проверял это, но это должно дать вам представление ..

Внутреннее объединение квитанций, т. Е. Подмножество таблицы, где слева (столбец, 1) = 'r' с журналами (подмножество таблицы, где left (col, 1) = 'j), и вы получите список подходящих строк.

Затем просто выберите строки из таблицы, которых нет в этом списке

SELECT * FROM [Table] 
WHERE SUBSTRING(col,2,100) NOT IN 
    (SELECT Receipts.Ref FROM 
           (SELECT SUBSTRING(col,2,100) Ref from [Table] WHERE LEFT(col,1) = 'R') Receipts
INNER JOIN (SELECT SUBSTRING(col,2,100) Ref from [Table] WHERE LEFT(col,1) = 'J') Journals ON Receipts.Ref = Journals.Ref)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...