SQL中的大小寫、trim()、Having()、to_date() 和 to_char()、top

一、trim()將字符中指定位置的指定字符刪除

SQL 中的 TRIM 函數是用來移除掉一個字串中的字頭或字尾。最常見的用途是移除字首或字尾的空白。這個函數在不同的資料庫中有不同的名稱:

  • MySQL: TRIM( ), RTRIM( ), LTRIM( )
  • Oracle: RTRIM( ), LTRIM( )
  • SQL Server: RTRIM( ), LTRIM( )

各種 trim 函數的語法如下:

TRIM ( [ [位置] [要移除的字串] FROM ] 字串): [位置] 的可能值爲 LEADING (起頭), TRAILING (結尾), or BOTH (起頭及結尾)。 這個函數將把 [要移除的字串] 從字串的起頭、結尾,或是起頭及結尾移除。如果我們沒有列出 [要移除的字串] 是什麼的話,那空白就會被移除。

LTRIM(字串): 將所有字串起頭的空白移除。

RTRIM(字串): 將所有字串結尾的空白移除。

例1

SELECT TRIM('   Sample   ');

結果:

'Sample'

例2

SELECT LTRIM('   Sample   ');

結果:

'Sample   '

例3

SELECT RTRIM('   Sample   ');

結果:

'   Sample'

二、大小寫轉化,UPPER(),LOWER()

UPPER(****),將****轉化爲大寫;

LOWER(****),將****轉化爲小寫;

例從字符串"Hello World"中提取”ello world“

<pre name="code" class="sql">SELECT LOWER(TRIM('H' FROM 'Hello World')) FROM dual

三、having() 與 group by 

這兩者組合相當於where與select組合,不過having()中可以使用聚合函數

例選擇表ppp2中num重複的記錄

select * from ppp2
where num in (select num from ppp2 group by num having (count(num)>1))

這裏可見轉載地址:http://www.cnblogs.com/wang-123/archive/2012/01/05/2312676.html

--group by 和having 解釋:前提必須瞭解sql語言中一種特殊的函數:聚合函數,--例如SUM, COUNT, MAX, AVG等。這些函數和其它函數的根本區別就是它們一般作用在多條記錄上。 --WHERE關鍵字在使用集合函數時不能使用,所以在集合函數中加上了HAVING來起到測試查詢結果是否符合條件的作用。

create TABLE Table1
    (
        ID int identity(1,1) primary key NOT NULL,   
        classid int, 
        sex varchar(10),
        age int, 
    ) 


    --添加測試數據
Insert into Table1 values(1,'男',20)
    Insert into Table1 values(2,'女',22)
    Insert into Table1 values(3,'男',23)
    Insert into Table1 values(4,'男',22)
    Insert into Table1 values(1,'男',24)
    Insert into Table1 values(2,'女',19)
    Insert into Table1 values(4,'男',26)
    Insert into Table1 values(1,'男',24)
    Insert into Table1 values(1,'男',20)
    Insert into Table1 values(2,'女',22)
    Insert into Table1 values(3,'男',23)
    Insert into Table1 values(4,'男',22)
    Insert into Table1 values(1,'男',24)
    Insert into Table1 values(2,'女',19)


--舉例子說明:查詢table表查詢每一個班級中年齡大於20,性別爲男的人數select COUNT(*)as '>20歲人數',classid  from Table1 where sex='男' group by classid,age having age>20 --需要注意說明:當同時含有where子句、group by 子句 、having子句及聚集函數時,執行順序如下:--執行where子句查找符合條件的數據;--使用group by 子句對數據進行分組;對group by 子句形成的組運行聚集函數計算每一組的值;最後用having 子句去掉不符合條件的組。--having 子句中的每一個元素也必須出現在select列表中。有些數據庫例外,如oracle.--having子句和where子句都可以用來設定限制條件以使查詢結果滿足一定的條件限制。--having子句限制的是組,而不是行。where子句中不能使用聚集函數,而having子句中可以。

四、to_date 和 to_char

to_date 就是非日期型轉爲日期型,to_date('數據 ', 'yyyy-MM-dd hh24:mi:ss'),將數據按照格式產生日期
to_char 就是非字符串型轉爲字符串,to_char(datetime變量,'yyyy-MM-dd hh24:mi:ss'),將datetime變量按照格式變換日期

五、top,SQL Server和MYSQL、Oracle中相關top是不同的

TOP 子句

TOP 子句用於規定要返回的記錄的數目。

對於擁有數千條記錄的大型表來說,TOP 子句是非常有用的。

註釋:並非所有的數據庫系統都支持 TOP 子句。

SQL Server 的語法:

SELECT TOP number|percent column_name(s)
FROM table_name

MySQL 和 Oracle 中的 SQL SELECT TOP 是等價的

MySQL 語法

SELECT column_name(s)
FROM table_name
LIMIT number

例子

SELECT *
FROM Persons
LIMIT 5

Oracle 語法

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number

例子

SELECT *
FROM Persons
WHERE ROWNUM <= 5



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章