sql - 一个 SQL 查询,它使用 Between 运算符中两列的值并将这两列添加为结果的类
问题描述
在一个表中,我有一列包含一个字母,另一列包含一个按字母顺序排列的字母。例如,前者的“A”和后者的“R”。我想在 Between 运算符中使用这两列来搜索另一个表中的单词,该表从第一列的字母开始,以第二列的字母结尾。因此,在我的示例中,“空气”将符合此要求。问题是我还需要将这两列添加到结果中,因此对于我的示例,查询将返回另一个表中的“Air”和“A”和“R”作为我的结果中的两列。抱歉,我不能说得更清楚,因为数据很敏感。
解决方案
根据您在此处描述的内容,是获取输出的一种方法。
create table t(id int, start_letter varchar(1), end_letter varchar(1));
create table search_data(words varchar(50))
insert into t values(1,'A','R')
begin
insert into search_data values('Air');
insert into search_data values('Amour');
insert into search_data values('Arogant');
end;
select *
from search_data a
join t b
on lower(substring(a.words,1,1))=lower(b.start_letter)
and lower(substring(reverse(a.words),1,1))=lower(b.end_letter)
+-------+----+--------------+------------+
| words | id | start_letter | end_letter |
+-------+----+--------------+------------+
| Air | 1 | A | R |
| Amour | 1 | A | R |
+-------+----+--------------+------------+
db fiddle link
https://dbfiddle.uk/?rdbms=sqlserver_2019&fiddle=82cf80f4b76cb740ae56db8f236bfd46
推荐阅读
- protractor - 无法单击量角器中的图像
- android - GAv4 丢弃命中。缺少命中类型参数:tid=_GTM_DEFAULT_TRACKER_
- c++ - 无法修改其他线程中 ref 传递的值
- laravel - 自更新到高山脉以来,本地主机上的错误 403 apache
- javascript - 手风琴“Hop”故障
- javascript - 使用 Babel 编译 TypeScript 单例失败
- html - 将 html 转换为复选框剃刀视图
- java - Spring-Boot:运行 spring-boot restful 程序失败
- unity3d - 使用 Unity Vimeo API 下载 Vimeo 视频以供离线使用
- java - 我如何检索孩子(姓名和列表图像)