我有一个查询,我想根据列值而不是列名来订购,即
假设我有一个列"描述"在表格和我的SQL中我喜欢条件
Select * from tableName
where Description like '%Bombay%'
or Description like '%Hotel%' like Description like '%Rent%'
如果列描述包含所有三个值或两个值或一个值,即如果所有三个值都在描述列中,它应该在顶部
,我想订购记录在sql中可以吗?
答案 0 :(得分:3)
drop table if exists dbo.tableName;
create table dbo.tableName (
ID int primary key
, Description varchar(100)
);
insert into dbo.tableName (ID, Description)
values (1, 'Hotel Bombay Rent')
, (2, 'Hotel Bombay')
, (3, 'Hotel')
, (4, 'Aparment');
select
t.ID
, t.Description
from dbo.tableName t
order by (case when t.Description like '%Hotel%' then 1 else 0 end)
+ (case when t.Description like '%Bombay%' then 1 else 0 end)
+ (case when t.Description like '%Rent%' then 1 else 0 end) desc