question:i need 开发一个查询,查找以搜索项开头的特定记录和包含该搜索项的记录。此外,两个子集都应该按某一列排序,而结果集则不应该排序。以term开头的记录应位于contains term记录的上方。
例:我有 students
我要所有名字以“jhon”开头的学生。名为“jhon”的学生应排在前面,姓“jhon”的学生应排在后面。
我有如下资料:
获取以搜索项开头的所有记录并将其保存到可诱惑的\u a,然后获取所有记录包含搜索项的所有记录并排除已在可诱惑的\u a中的结果并将其保存到可诱惑的\u b。现在两个tentable都应该尊重结果,所以我将tentable\u b转储到tentable\u a中,相信新记录是在表的最后附加的。但它们不是,它们被插入并被排序,我还没有应用排序。
我在merge语句中也做了同样的事情,但没有取得丰硕的成果。
我尝试在两个子查询(以开头和包含)之间进行联合,但结果数据集始终不显示以记录开头的查询。
场景:列id为| student的students表 select * FROM students where name like 'jhon%'
UNION select * FROM students where name like '%jhon%'
2条答案
按热度按时间gv8xihay1#
使用
order by
. 例如:这个命令下了多远
'jhon'
在字符串中。如果你只想要那些'jhon'
首先,你可以使用case
表达式:qmb5sa222#
可以使用order by子句中的case表达式执行此操作: