是否有可能使用子查询进行字符串更改?
我无法在数据库上创建任何新表,只需阅读结果。
我的问题是这样的:有一个表T1有两列,C1和C2(以及其他列,但这些一起是键)。我必须得到所有条目C1,C2的列表,这样对C1,C2''不是T1中的条目,
C2'' = SELECT SUBSTRING_INDEX(C2, '\\', 1) AND CHARINDEX('\\',C2) > 0;
意思是,如果C2包含反斜杠,那么名称较短的条目"直到反斜杠"表中没有(如果C2不包含反斜杠,我无论如何都不会得到它。)
非常感谢您提前, khitron23
对不起。当然。
T1:
C1 |C2
abc|def
jkhk|abcde\\grt
lkjk|hkjhk\\kjg
khkh|khkhk\\ghh
jkhk|abcde
lkjl|hkjhk
结果:
C1|C2''
lkjk|hkjhk\\kjg
khkh|khkhk\\ghh
就是那些,因为没有
lkjk|hkjhk
khkh|khkhk
在初始表中。
服务器是http://quarry.wmflabs.org。 C1 | C2''表示列C1和列C2',它只是一个名称。 我真正想要的是这样的(对于知道wiki语法的人): 维基百科页面有两个关键列 - 命名空间+标题。 我想要识别没有首页的所有子页面(例如Portal:Biology \ answers \ 5)(作为Portal:Biology)。通常这是一个问题"忘记删除首页时删除首页"。 服务器可以读取维基百科表,但不能更改或创建新表。 非常感谢您提前
答案 0 :(得分:0)
假设您不需要转义'\'char(取决于SQL引擎),下一个想法就可以了(a1和a2只是别名而不会混淆列):
select *
from t1 as a1
where a1.c2 like '%\%'
and not exists (
select *
from t1 as a2
where a1.c1 = a2.c1
and a1.c2 like a2.c2 + '\%'
)