有時需要查詢一些不能從任何實體表中能夠取得的資料。
如:將數字1作為結果集或者計算字串「abc」的長度。
*嘗試使用下面的sql來完成類似的功能:
select 1 from t_employee
執行結果集:
結果集**現了不止乙個1,因為通過這種方式得到的結果集數量取決於t_employee表中的資料條目數,必須要借助於distinct關鍵字來將結果集條數限定為一條,如下:111
1111
11
select distinct 1 from t_employee
執行結果:
1
如:將字串「abc」的長度作為結果集輸出:
mysql:
select length('abc')
mssqlserver:
select len('abc')
執行結果:
3
如:將1、2、3、』a』、』b』、』c』作為結果集輸出:
select 1,2,3,'a','b','c'
執行結果:
1 2 3 a b c
在oracle中是不允許使用不帶from子句的select語句,不過我們可以使用oracle的系統表來作為from子句中的表名
注意:系統表是oracle內建的特殊表,最常用的是dual
如:將1以及字串'abc'的長度作為結果集輸出:
select 1, length('abc') from dual
執行結果:
在db2中也不支援不帶from子句的select語句,它也是採用和oracle類似的系統表,最常用的是sysibm.sysdummy1。1 length(abc)
1 3
如:將1以及字串'abc'的長度作為結果集:
select 1, length('abc') from sysibm.sysdummy1
執行結果:
1 2
1 3
三 SQL 資料檢索 (萬用字元)
如 t employee表中fname欄位匹配如下規則的資料行 以任意字元開頭,剩餘部分為 erry 如 萬用字元表示式 k 匹配以 k 開頭 任意長度的字串 萬用字元表示式 b t 匹配以 b 開頭 以 t 結尾 任意長度的字串 例如 t employee表中fname欄位以 t 開頭長度,長度任...
SQL資料庫資料檢索top和distinct
一 distinct 針對查詢的結果去去除重複 主要針對查詢的結果 top獲取前幾條資料,top一般都與order by連用 desc asc distinct去除重複的資料 select distinct sname from student select top 5 from student o...
SQL資料庫資料檢索top和distinct
一 distinct 針對查詢的結果去去除重複 主要針對查詢的結果 top獲取前幾條資料,top一般都與order by連用 desc asc distinct去除重複的資料 select distinct sname from student select top 5 from student o...