請教sql語句中not like的用法
標準SQL中用like進行模糊查詢,有兩個通配符:%百分號代表任意個字符,_下劃線代表一個字符。
例如查詢姓名中包含“曉”的人,where子句可以寫成:where name like '%曉%'
姓名由兩個字構成,并且第二個字是“紅”,可以寫成:where name like '_紅'
如果對like進行否定,前面加上not即可
查詢姓名中不包含“曉”的人:where name not like '%曉%'
姓名由兩個字構成,第二個字不是“紅”:where name not like '_紅'
在sql語句中,like所有的用法
Like的運用場合主要在模糊查詢的時候,一般以查詢字符串居多,這里據一些例子來說他的一般用法:
例1,查詢name字段中包含有“明”字的。
select * from table1 where name like '%明%'
這里不要使用*來代替,一般在使用0個或者任意個字符構成的字符串的時候最好使用%
不過在首或尾使用可以相互替換,如果在頭尾同時使用的話,就必須要使用%
例2,查詢name字段中以“李”字開頭。
select * from table1 where name like '李*'
或者
select * from table1 where name like '李%'
例3,查詢name字段中含有數字的。
select * from table1 where name like '%[0-9]%'
例4,查詢name字段中含有小寫字母的。
select * from table1 where name like '%[a-z]%'
例5,查詢name字段中不含有數字的。
select * from table1 where name like '%[!0-9]%'
補充一點,?或者_表示單個字符
這個SQL語句該怎么寫(LIKE)
哎,郁悶,原來abap的where語句本身就支持動態條件。
SELECTION-SCREEN BEGIN OF BLOCK SS WITH FRAME TITLE TEXT-100. PARAMETERS: V_WERKS TYPE MARC-WERKS OBLIGATORY VALUE CHECK, V_MATNR TYPE MARC-MATNR, V_DISPO TYPE MARC-DISPO, V_XCHAR TYPE MARC-XCHAR. SELECTION-SCREEN END OF BLOCK SS. DATA : STR TYPE STRING. DATA : L_MARC TYPE MARC. START-OF-SELECTION. STR = SPACE. CONCATENATE STR 'WERKS = ''' V_WERKS '''' INTO STR. IF V_MATNR SPACE. CONCATENATE STR ' AND MATNR = ''' V_MATNR '''' INTO STR. ENDIF. IF V_DISPO SPACE. CONCATENATE STR ' AND DISPO = ''' V_DISPO '''' INTO STR. ENDIF. IF V_XCHAR = 'X'. CONCATENATE STR ' AND XCHAR = '' X ''' INTO STR. ENDIF. SELECT * INTO L_MARC FROM MARC WHERE (STR). WRITE : / L_MARC-WERKS,L_MARC-MATNR,L_MARC-DISPO. ENDSELECT.。
轉載請注明出處華閱文章網 » notlikesql語句