sql可以反向查詢,sql 模糊查詢方法 sql語句裡like有沒有反向用法

2025-03-19 05:50:18 字數 2830 閱讀 8479

1樓:桃太郎

用sql語句當然可以實現。

以oracle自帶的dept表為例。鏈告讓。

declare

alllie varchar(20):=deptno,dname,loc';/所有的列。

nlie varchar(20):=dname,';不顯示的列。

type mytype is ref cursor; /遊標儲存結果。

mycursor mytype;

beginalllie:=replace(alllie,nlie,''

open mycursor for 'select ''alllie||'from dept';

end;你要通過在dbms中輸出,還是程式中輸出呢?要是在程式中輸出,你上面的友兄邏輯可棚局以放到程式裡去實現的。

2樓:網友

那你侍野就寫。

select * from test;

然後差穗在程式中,因為不要a b列,你只顯示c d e 列即老慶喊可。

3樓:網友

你的需求只豎粗能用拼接sql來兆纖純做。

declare @colname nvarchar(50),@sql nvarchar(max)

set @colname=''

select @colname=@colname+name+',from where object_id=object_id('test')

and name<>'a'

set @sql='select '+left(@colname,len(@colname)-1)+'族咐 from test'

exec (@sql)

sql 模糊查詢方法 sql語句裡like有沒有反向用法?

4樓:我在哪我是誰

在這種情況下可以換種思路。

可以不用like,而用 instr函式,而且instr函式的效率也優於like.

instr (str,substr) 返回子串substr在字串str中的第乙個出現的位置。如果substr不是在str裡面,返回0。

所以 你就可以這樣用了 判斷:如果 instr(str2,str1)>0則說明 str1是str2 的一部分,如果instr(str2,str1)=0,那麼str1就不是str2 的一部分。

希望對你有幫助。

5樓:諸葛屠夫

你的意思是不是aaabbbcccddd是乙個字串,str1是你表裡的乙個欄位名,它裡邊有'aaa','bbb','ccc'這些值,你要判斷str1的值是不是在字串裡?

sql server可以用這個函式charindex(str1,'aaabbbcccddd')>0表示就含有,返回的是子字串的位置從零開始。

oracle裡是(str1,'aaabbbcccddd')>0意義相同。

6樓:

下面方法試試:

select * from 表 where '字串' like concat('%',欄位,'%')

sql mysql怎麼反過來like某個欄位

7樓:冰悅精彩

您好:select *

from 表。

where '字串' like concat('%',欄位,'%')

大概是這樣,手上沒環境,沒測試。

您可以參考著用用。。。

更正了一下,發現個錯誤。

sql語句裡「like」有沒有反向用法?

8樓:八卦星人小林

沒有的。

sql即結構化查詢語言(structured query language),是一種特殊目的的程式語言,是一種資料庫查詢和程式設計語言,用於存取資料以及查詢、更新和管理關聯式資料庫系統;同時也是資料庫指令碼檔案的副檔名。sql語句無論是種類還是數量都是繁多的,很多語句也是經常要用到的,sql查詢語句就是乙個典型的例子,無論是高階查詢還是低階查詢,sql查詢語句的需求是最頻繁的。

sql反向模糊查詢,需要用到的函式為instr(str1,str2),instr(str1,str2)表示st,比如: select * from table_name t where instr('唐飛',>0;

注:name為table_name 中的乙個欄位,為varchar型別。instr(str1,str2)>0表示str1包含str2; instr(str1,str2)>=表示str1不包含str2。

由很容易可以看出來instr完全可以替代like,至少在以上示例中可以替代。只要把str1和str2換個位置就可以達到like效果。

instr的效率是比like要高些(orace對內建函式做了優化),而且使用like時,一些索引是不能用的,但oracle支援函式索引,如果使用函式索引的話,執行更快。

一般的資料庫中,instr和like的效率是沒有多大差別的,但對於oracle資料庫可以通過函式索引來提高instr的執行效率。

請問,mysql怎麼取出相反的記錄啊?就是我先查的不符合記錄的,然後想「取反」

9樓:網友

我說關鍵部分。..where 列名 not like '%列關鍵字%'

not就可以了,還有【^】

10樓:汪雄輝拉

為什麼先查出不符合你要求的記錄,然後再取反?怎麼不直接查符合的記錄?

比如你通過乙個 in 得到結果集,那麼取反就可以用 not in

類似in 這樣的判斷還有 exists 、not exists ,等於,不等於,。。總之,很多。

c模糊查詢sql語句怎麼寫c裡SQL模糊查詢

假設有表名稱 tb student 欄位 id,編號 name 學生姓名 性別 要求 根據文字框 txt inputname 輸入的值,進行學生名稱的模糊查詢。偽 獲取文字框的值作為查詢條件 string filtername txt inputname.text.trim 查詢語句 string ...

sql單表複雜查詢,資料庫複雜查詢

select 銷售id,缺好消日期,a.銷量,b.銷量,c.銷量。from select distinct id,日期 from 表 xx,select id,日期,count 產品 as 銷量 from 表 where 狀態 group by id,日期 a,select id,日期,count ...

sql語句查詢類別下所有子類sql語句查詢類別下所有子類

假如表名是 tablea select from tablea b where id between 2 and 6union all select from tablea a where exists select from tablea b where b.id between 2 and 6a...