調整數據外觀(一)

  • 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

相關文章
相關標籤/搜索