我有一个返回类似于此行的查询:
R123 R234 R345 J123
是否可以不返回具有匹配子字符串的行?因此,在这种情况下,R123和J123将不会显示在结果中。
答案 0 :(得分:0)
我没有对此进行测试,但它应该给你一个想法..
内部加入收据,即左边的表格子集(col,1)='r' 使用日记帐(表格的左侧(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)
答案 1 :(得分:0)
select
Value
from MyTable
group by substring(Value,2,len(Value))
having count(*) = 1
答案 2 :(得分:0)
当然,这个怎么样?
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