1. position(substring in string):
postgres=
# select position('aa' in 'abcd');
position
----------0(
1row
)postgres=
# select position('ab' in 'abcd');
position
----------1(
1row
)postgres=
# select position('ab' in 'abcdab');
position
----------1(
1row
)1234567891011121314151617
可以看出,如果包含目標字串,會返回目標字串笫一次出現的位置,可以根據返回值是否大於0來判斷是否包含目標字串。
2. strpos(string, substring): 該函式的作用是宣告子串的位置。
postgres=
# select strpos('abcd','aa');
strpos
--------0(
1row
)postgres=
# select strpos('abcd','ab');
strpos
--------1(
1row
)postgres=
# select strpos('abcdab','ab');
strpos
--------1(
1row
)1234567891011121314151617
作用與position函式一致。
3. 使用正規表示式:
postgres=
# select 'abcd' ~ 'aa';
?column?
---------- f(
1row
)postgres=
# select 'abcd' ~ 'ab';
?column?
---------- t(
1row
)postgres=
# select 'abcdab' ~ 'ab';
?column?
---------- t(
1row
)1234567891011121314151617
4. 使用陣列的@>操作符(不能準確判斷是否包含):
postgres=
# select regexp_split_to_array('abcd','') @> array['b','e'];
?column?
---------- f(
1row
)postgres=
# select regexp_split_to_array('abcd','') @> array['a','b'];
?column?
---------- t(
1row
)1234567891011
注意下面這些例子:
postgres=
# select regexp_split_to_array('abcd','') @> array['a','a'];
?column?
---------- t(
1row
)postgres=
# select regexp_split_to_array('abcd','') @> array['a','c'];
?column?
---------- t(
1row
)postgres=
# select regexp_split_to_array('abcd','') @> array['a','c','a','c'];
?column?
---------- t(
1row
)1234567891011121314151617
可以看出,陣列的包含操作符判斷的時候不管順序、重複,只要包含了就返回true,在真正使用的時候注意。
**:
PostgreSQL字串處理函式
史上最全it資源,個人收藏總結!前期準備,新建資料表 create table mytable id serial not null,name character varying 20 geom geometry,remark character varying 255 插入資料 insert in...
字串判斷
總時間限制 1000ms 記憶體限制 65536kb 描述 判斷兩個由大小寫字母和空格組成的字串在忽略大小寫,且忽略空格後是否相等。輸入兩行,每行包含乙個字串。輸出若兩個字串相等,輸出yes,否則輸出no。樣例輸入 a a bb bb ccc ccc aa bbbb cccccc樣例輸出 yes思路...
判斷字串
python hello world print str.isalnum 判斷所有字元都是數字或者字母 print str.isalpha 判斷所有字元都是字母 print str.isdigit 判斷所有字元都是數字 print str.islower 判斷所有字元都是小寫 print str.i...