三 SQL資料檢索11 不從實體表中取的資料

2021-10-13 13:07:08 字數 1206 閱讀 4994

有時需要查詢一些不能從任何實體表中能夠取得的資料。

如:將數字1作為結果集或者計算字串「abc」的長度。

*嘗試使用下面的sql來完成類似的功能:

select 1 from t_employee
執行結果集:

111

1111

11

結果集**現了不止乙個1,因為通過這種方式得到的結果集數量取決於t_employee表中的資料條目數,必須要借助於distinct關鍵字來將結果集條數限定為一條,如下:

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
執行結果:

1 length(abc)

1 3

在db2中也不支援不帶from子句的select語句,它也是採用和oracle類似的系統表,最常用的是sysibm.sysdummy1。

如:將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...