sql判斷字元
⑴ sql判斷字元是否在字元串中,字元串用,隔開
在SQL中判斷一個字元是否存在於用逗號分隔的字元串中,可以通過多種方法實現。例如,可以使用 EXISTS 子查詢來檢查特定字元是否存在於欄位中。例如,如果需要檢查表中是否存在特定值 'aa',可以編寫如下查詢:
如果存在欄位 aa 為 'aa' 的記錄,或者欄位 bb 為 'aa' 的記錄,或者欄位 cc 為 'aa' 的記錄,則輸出 'exists aa';否則輸出 'Not exists aa'。
具體實現如下:
sql
if exists(select 1 from table where aa='aa' ) or exists(select 1 from table where bb='aa' ) or exists(select 1 from table where cc='aa' )
print 'exists aa'
else
print 'Not exists aa'
判斷字元串中是否存在逗號,可以使用 CHARINDEX 函數。例如,如果需要檢查某個欄位中是否包含逗號,可以使用如下查詢:
sql
select * from table where charindex(',', MName) > 0
逐條記錄處理可以用游標,但這種方式效率較低,通常不推薦。更好的方法是直接在查詢中處理這些邏輯。
具體實現中,可以使用 LEFT 和 CHARINDEX 的組合來檢查特定前綴。例如,如果需要檢查 MName 欄位是否以 'aa' 開頭,並且 ISDel 欄位是否以 '1' 開頭,可以編寫如下查詢:
sql
select * from table where left(MName,charindex(',',MName)-1) ='aa' and left(ISDel,charindex(',',ISDel)-1) ='1'
以上查詢將返回所有符合特定條件的記錄。
⑵ sql判斷一個字元串是否是數字
如果是ORACLE,可以:
select translate(str,'x1234567890','x') from al,如果得到的是空則是數字,如果不是空,則是帶字元串的。
⑶ MySQL、SQLServer判斷字元串是否包含某字元
MySQL:
在MySQL中使用FIND_IN_SET( st , str )函數來判斷某個字元串是否包含某字元。其中,st表示需要判斷的字元,str表示相應的字元串欄位。如果包含,則返回st字元在字元串中的位置,以1為起點。如果不包含,則返回0;
SQLServer:
在SQLServer中使用CHARINDEX(','+ st +',' , ','+ str +',')函數來判斷某個字元串是否包含某字元。其中,st表示需要判斷的字元,str表示相應的字元串欄位。如果包含,則返回st字元在字元串中的位置,以1為起點。如果不包含,則返回0;
注意:在SQLServer函數中,st必須為字元串,使用int則無效,如果是數字類型字元,必須使用雙引號。