[英]Find order by based on column value not column name
我有一個查詢,我想根據列值而不是列名進行排序,即
假設我在表中有一列“說明”,而在我的sql中,我的條件是
Select * from tableName
where Description like '%Bombay%'
or Description like '%Hotel%' like Description like '%Rent%'
我想對“描述”列中的所有三個值或兩個值或一個值進行排序,即如果所有三個值都在“描述”列中,則該記錄應位於頂部
有可能在sql中嗎?
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
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.