学习记录
SQL 拼接,截取字符串
- 拼接字符串 CONCAT()
- 截取字符串 SUBSTR()//SUBSTRING()
- SUBSTR(str,pos)//SUBSTR(str FROM pos)
- str从pos位置开始截取到最后;注:pos第一个下标是1, 可以为负数
- SUBSTR(str,pos,len)//SUBSTR(str FROM pos FOR len)
- str从pos位置开始截取到len位字符;注:pos第一个下标是1,可以为负数
- SUBSTR(str,pos)//SUBSTR(str FROM pos)
- 截取字符串 SUBSTRING_INDEX()
- SUBSTRING_INDEX(str,delim,count),count 可以为负数
- 按某些字符的下标来截取字符串
- SUBSTRING_INDEX(str,delim,count),count 可以为负数
- LEFT(str, len) 从左边截取字符串
- RIGHT(str, len) 从右边截取字符串
SQL中判断字符串中包含字符的方法
- CHARINDEX:查某字符(串)是否包含在其他字符串中,返回字符串中指定表达式的起始位置。
- PATINDEX:查某字符(串)是否包含在其他字符串中,返回指定表达式中某模式第一次出现的起始位置;如果在全部有效的文本和字符数据类型中没有找到该模式,则返回零。从1开始下标
-(两者的区别在于,后者支持模糊匹配,前者是全匹配)
SQL 条件判断值 CASE WHEN
SELECT tenant, (CASE WHEN api_service IS NULL then 'noaction' WHEN COUNT(api_service) > 1 then 'senior' ELSE 'junior' END) AS stage
SQL 中的 NULL 值
count(*) '4991895' (包含NULL,其他不包含)
WHERE user_name is NULL '18557'
WHERE user_name is NOT NULL '4973338'
WHERE user_name = "" '2736837'
WHERE user_name != "" '2236501'
WHERE user_name != "" and user_name is NULL 0
WHERE user_name != "" and user_name is NOT NULL '2236501'
WHERE user_name = "" and user_name is NULL 0
WHERE user_name = "" and user_name is NOT NULL '2736837'
遗留问题
- 表达式,匹配不包含某个单词的行
网友评论