调整数据外观(一)

  • TRANSLATE函数

搜索字符串里的字符,并查找特定的字符,标记找到的位置,而后用替代字符串里对应的字符替换它express

--实例
--把CITY列中字符串的每一个I替换为A,N替换为B,D替换为C
SELECT CITY TRANSLATE(CITY,'IND','ABC')
FROM table_name

语法函数

TRANSLATE(CHARACTER SET,VALUE1,VALUE2)

1注:code

MySQL和Oracle都支持使用TRANSLATE函数,可是Microsoft SQL Sever还不支持字符串

  • REPLAC

把某个字符或字符串替换为必定指定的字符(或多个字符),其使用相似与TRANSLATE函数,只是它是一个把字符或字符串替换到另外一个字符串里it

--返回所有城市,而且把城市里的I都替换为Z
SELECT CITY,REPLACE(CITY,'I','Z')
FROM table_name

语法io

REPLACE('VALUE','VALUE',[NULL] 'VALUE')

 

  • UPPER/LOWER

    upper小写转大写,lower大写小撰写table

语法搜索

UPPER(character String)
LOWER(character String)
--实例
SELECT LOWER(CITY)
FROM EMPLOYEE_TBL

注:语法

Microsoft SQL Sever、MySQL和Oracle所有支持该函数,在MySQL中,还有UCAES函数也是小写转大写,LCAES大写转小写,但用户最好遵循ANSI标准语法im

  • SUBSTR

    获取字符串中的子字符,说白了就是获取字符串的部份内容

语法

--在Oracle中的语法
SELECT SUBTR(column_name,position,length)

--SQL Sever里的语法
SELECT SUBTRING(column_name,position,length)

--实例:获取EMP_ID的第6至9个字符
SELECT EMP_ID,SUBTRING(EMP_ID,6,4)
FROM EMPLOYEE_TBL

 

  • LTRIM

另外一种截取部分字符串的方式,用于从左剪除字符串里的字符

语法

LTRIM(CHARACTER STRING [,'SET'])

 

--实例
SELECT POSITION,LTRIM(POSITION,'SALES')
FROM EMPLOYEE_PAY_TBL

 

 

  • RTRIM

类与LTRIM,RTRIM用于剪除字符串右侧的字符,

RTRIM(CHARACTER STRING [,'SET'])

注:

Microsoft SQL Server ,MySQL,Oracel所有支持RTRIM、LTRIM函数

  • INSTR

   用于在字符串中寻找指定的字符集,并返回它的位置

语法

INSTR(column_name,'set' [,START POSITION [,OCCURRENCE]])

 

--实例
--返回每一个州名里I第一次出现的位置
SELECT INSTR(STATE,'I',1,1)
FROM EMPLOYEE_TBL

--查找并返回字母A在字段PROD_DESC里第一次出现的位置
SELECT PROD_DESC,INSTR(PROD_DESC,'A',1,1)
FROM PRODUCTS_TBL
--若是为找到A字母,则会返回位置值0

注:

INSTR函数在MySQL和Oracle中有效,可是在Microsoft SQL Server中须要使用CHARINDEX

CHARINDEX(expression1,expression2 [,start_location])
--exprssion1表示想要找的字符,如‘set’
--exprssion2表示被查找的字段,如‘column_name’
--start_location表示在expression2中查找expression1的开始位置,能够不写,表示从1位开始查找

--实例
CHARINDEX('SQL','Microsoft SQL Server')
--返回的是整数11,由于'SQL'从11开始的(包括空格),若是找不到就返回0
  • DECODE

在字符串中搜索一个值或字符串,若是找到了,就在结果里显示另外一个字符串

语法

DECODE(column_name,'SEARCH1','RETURN1',['SEARCH2','RETURN2','DEFAULT VALUE'])

 

--从CITY中找到INDIANAPOLIS显示为INDY,GREENWOOD显示为 GREEN,而其余城市显示为OTHER

SELECT CITY,DECODE(CITY,'INDIANPOLIS','INDY','GREENWOOD','GREEN','OTHER')
FROM EMPLOYEE_TBL

注:

DECODE函数不是ANSI目前还不是标准里的,该函数主要用于Oracel和PostgreSQL

相关文章
相关标签/搜索