當前位置:首頁 » 編程語言 » sqlserverlikein

sqlserverlikein

發布時間: 2022-09-01 22:21:58

A. sql server 中 in 和like 有什麼區別

首先是in,in在檢索語句當中檢索出來的值和列表提供的值是完全符合的。比如數據當中有一個值是一個字元'name』那麼在in語句當中你就要寫成「in('name')」他還可以配合not使用,僅不過意思相反。
其次是like,like和in是有一定區別的,like一般與通配符一起使用,他可以檢索出一些特地定格式的字元。比如在一系列的數據當中,你要求檢索出以數字1開頭的數據,你就可以使用like'1%'。這里要說明一下sql提供的通配符主要有四種 '%', '_', '[ ]', '[ ^ ]'。下面對通配符做一些簡單說明:
1、'%'其後可用於接無數個字元串:在查詢中如此使用like 's_',即可查出以s開頭的值;
2、'_'其後僅可以得到一個字元,如以sales為例,like's_'如此使用,不能找出sales,而應like 'sale_'即可查出sales;
3、'[ ]'表示出現的字元是在一定的范圍內,一般情況下它是配合'%'使用的。如like 』p[ r,o]%,他就可以查出以p開頭的值,並且其後第二個字元,是r,或者是o,即pocket,proct、、、
4、 '[ ^ ]'是與其相反的,如like 『 p[^ r,o]% ',就是檢索出以p開頭但第二個字元不是r或o的字元。
希望我的回答能對你有所幫助

B. sql server like 一個欄位。 例如:select * from 表 where 欄位1 like '%欄位2%'

sql 中 like 要引用一個欄位的值,需要使用連接符『+』

所以原語句:select * from 表 where 欄位1 like '%欄位2%'
需要更改為:select * from 表 where 欄位1 like '%'+欄位2+'%'

SQL Server中 用 + 來連接字元串。如果不是字元類型,應先轉換成字元類型。
也就是說,如果語句中的』欄位2『為數值型欄位那麼,語句需要更改為:
select * from 表 where 欄位1 like '%'+cast(欄位2 as varchar(20))+'%'

C. 在sql server 中like 一個欄位

由於不知道你是用SQLSERVER還是ORACLE,我就先給你一個SQLSERVER版本的吧!
如果你的欄位定義是id為字元類型(nvarchar或varchar),而goid也是字元類型的話就很簡單了!
直接用like或者charindex就行了!

測試sql如下:
create table #1(id varchar(10),goid varchar(10));
insert into #1( id,goid)values('123456','345'),('222444','123'),('56789','89'),('123','1');
select * from #1 where id like '%'+goid+'%';
select * from #1 where charindex(goid,id)>0;
drop table #1;

如果你的欄位定義是id為字元類型(nvarchar或varchar),而goid是整型(int,tinyint等)的話就要轉換一下!

測試sql如下:
create table #2(id varchar(10),goid int);
insert into #2( id,goid)values('123456',345),('222444',123),('56789',89),('123',1);
select * from #2 where id like '%'+convert(varchar,goid)+'%';
select * from #2 where charindex(convert(varchar,goid),id)>0;
drop table #2;

如果不屬於上面兩種情況,參考照轉換方法都可以解決!

下面是ORACLE版本的!
因為ORACLE會自己來處理這些問題,直接用like或instr就行了!不分類型哈!

測試sql如下:
create table t1 (id nvarchar2(10),goid varchar(10));
insert into t1( id,goid)values('123456','345');
insert into t1( id,goid)values('222444','123');
insert into t1( id,goid)values('56789','89');
insert into t1( id,goid)values('123','1');
select * from t1 where id like '%'||goid||'%';
select * from t1 where instr(id,goid)>0;
drop table t1;

D. 請教一下關於sql server中模糊匹配欄位(如like '%'),如果想模糊匹配多種字元,應該怎麼做

欄位1 like '%12[1-9]%'可以簡化

欄位1 like '%121%' or 欄位1 like '%122%' or 。。。到 欄位1 like '%129%'

如果從%121%到%180%,可以用
欄位1 like '%1[2-7][1-9]%' or 欄位1 like '%180%'

其它情況的話找出規律,可以簡化,不一定要一個like搞定
希望能給你啟發

E. 求SQL SERVER 里 LIKE語法

SELECT * FROM XXX WHERE LIKE '___81%';
這里要注意sql中通配符有兩個「_」和「%」,「_」表示任意的一個字元,「%」表示任意的一段字元(包括沒有)。上面的答案中「___81%」前面是連續三個「_」。
當然樓上的
SELECT * FROM XXX WHERE substring(欄位名,4,2)='81'
也是可以的,用到了substring(欄位名,起始位置,長度)這個函數。

F. sql server2005 里有這樣一條sql ,in子句里包括一個like子句,有沒有好辦法解決這樣的嵌套

不如你把你的需求發出來,你這樣說不太好解決,因為不知道需求就不知道有沒有其他什麼辦法來處理。
你可以試試用Union all,將IN裡面的每一項分開來,然後Union all,這樣的效率肯定比你描述的這種嵌套好些。

G. sql里like in能組合用嗎的相關推薦

保留字like在sql里與+-*/一樣是運算符之一,可用like運算符來找出符合指定樣式的欄位值。它通常要結合通配符表達式一起使用。

保留字in在sql里的作用多一些,其作用之一也與+-*/一樣是運算符,用「in運算符」可判斷表達式的數值是否等於指定列表中幾個數值中的一個;

其作用之二為設置sql子查詢,用「in子查詢」的結果可以對主查詢實施篩選,篩選效果與in運算符相同;另外不同種類的資料庫in還可能有一些其他特殊用途,例如in在access資料庫里還可以連接外部數據表等。

SQL對like 操作中的特殊字元處理方法:

SQL Server查詢過程中,單引號 ' 是特殊字元,所以在查詢的時候要轉換成雙單引號 '' 。

在like操作還有以下特殊字元:下劃線_,百分號%,方括弧[],尖號^。

下劃線:用於代替一個任意字元(相當於正則表達式中的 ? ) 百分號:用於代替任意數目的任意字元(相當於正則表達式中的 * )

以上內容參考:網路-SQL LIKE

H. 資料庫like前匹配快還是in

資料庫前匹配快in。

like最差,特別是以%(有的資料庫是*)開頭的匹配,是無法進行索引的,只有順序掃描。

首先是=,表示值必須是一個特定的值。然後是in,表示值是幾個特定的值中的一個。最後是like,通過匹配來查找值。其實還有一個is,只為null使用。

SQL對like 操作中的特殊字元處理方法:

SQL Server查詢過程中,單引號 ' 是特殊字元,所以在查詢的時候要轉換成雙單引號 '' 。

在like操作還有以下特殊字元:下劃線_,百分號%,方括弧[],尖號^。 其用途如下:下劃線:用於代替一個任意字元(相當於正則表達式中的 ? ) 百分號:用於代替任意數目的任意字元(相當於正則表達式中的 * )。

方括弧:用於轉義(事實上只有左方括弧用於轉義,右方括弧使用最近優先原則匹配最近的左方括弧)。

尖號:用於排除一些字元進行匹配(這個與正則表達式中的一樣)。

I. sql 多關鍵字模糊查詢

如果是ORACLE可以用正則表達式
select * form table_name t where regexp_like(t.id,'1077130|1099697')

熱點內容
尾貨棉服直播間腳本 發布:2025-01-16 01:21:45 瀏覽:227
vb編程步驟 發布:2025-01-16 01:11:58 瀏覽:201
bb霜解壓 發布:2025-01-16 01:11:11 瀏覽:596
編程懟人 發布:2025-01-16 00:53:08 瀏覽:760
建立共享伺服器地址 發布:2025-01-16 00:26:40 瀏覽:565
android開機動畫修改 發布:2025-01-16 00:26:26 瀏覽:872
怎麼解壓pc版游戲 發布:2025-01-16 00:16:32 瀏覽:122
v9更新到91有方舟編譯器嗎 發布:2025-01-16 00:11:49 瀏覽:500
AB系統編程 發布:2025-01-16 00:09:37 瀏覽:621
存儲過程如何遍歷一個表的數據 發布:2025-01-16 00:08:34 瀏覽:875