2017-06-07 71 views
0

我有一個查詢,我想基於列的值不列名訂購即基於列的值不列名

假設我在表,並在我的SQL我有一列「描述」查找訂單像條件爲

Select * from tableName 
where Description like '%Bombay%' 
or Description like '%Hotel%' like Description like '%Rent%' 

我要訂購的記錄,如果列說明具有所有三個值或兩個值,或即如果所有三個值都在說明欄應在頂部

是一個值在sql中可能嗎?

+0

您可以使用[全文搜索](https://docs.microsoft.com/en-us/sql/relational-databases/search/full-text-search)。 – Jamiec

+0

@Jamiec任何示例 - 我們是否需要更改全文搜索的查詢? –

+0

您需要更改*數據庫*和查詢。 – Jamiec

回答

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