我是一个SQL菜鸟,我想知道是否有人可以给我
对以下问题有所帮助:
所以我有两张桌子"学校"和#34;教师"。
" search_key" "学校" table是一个大字符串
结合教师姓名和其他元素(例如:"ENGLISH | JANE | [90, 56]
)
所以我要做的就是匹配列中的字符串" name"
#34;老师"使用前一个表格,获取匹配的单元格。
SELECT * FROM(
SELECT substr(a.search_key, 6, instr(a.search_key, '|'))
FROM schools a
) JOIN teachers s ON a.search_key = s.search_key
这就是我一直在尝试做的事情,子串并尝试匹配,但到目前为止还没有运气。 有什么想法吗?
答案 0 :(得分:1)
我不确定为什么会比这更复杂:
this.dataService.getData()
.pipe(
tap(console.log),
tap(data => doStuff(data)))
).subscribe();
答案 1 :(得分:0)
这应该让你去 -
WITH SCHOOLS AS (
SELECT
'ENGLISH | JANE | [90,56]' AS SEARCH_KEY
FROM
DUAL
),TEACHER AS (
SELECT
'JANE' AS NAME
FROM
DUAL
) SELECT
S.SEARCH_KEY
FROM
SCHOOLS S,
TEACHER T
WHERE
S.SEARCH_KEY LIKE '%' || T.NAME || '%';
输出 -
SEARCH_KEY
ENGLISH | JANE | [90, 56]
另一种方法是 -
WITH SCHOOLS AS (
SELECT
'ENGLISH | JANE | [90,56]' AS SEARCH_KEY
FROM
DUAL
),TEACHER AS (
SELECT
'JANE' AS NAME
FROM
DUAL
) SELECT
S.SEARCH_KEY
FROM
SCHOOLS S,
TEACHER T
WHERE
TRIM(REGEXP_SUBSTR(S.SEARCH_KEY,'(\S*)(\W)',1,3)) = T.NAME;
如果名称始终是SEARCH_KEY字段中的第二个字段值,则无效|