1. 程式人生 > 資料庫 >ORACLE中關於表的一些特殊查詢語句

ORACLE中關於表的一些特殊查詢語句

1: 如何判斷欄位的值裡面:那些資料包含小寫字母或大小字母

判斷欄位NAME的值裡面有小寫字母的記錄

方式1:

SELECT NAME FROM TEST 
WHERE regexp_like(NAME,'[[:lower:]]');

方式2

SELECT NAME FROM TEST 
WHERE regexp_like(NAME,'[a-z]');

判斷欄位NAME的值裡面有大寫字母的記錄

方式1:

SELECT NAME FROM TEST 
WHERE regexp_like(NAME,'[[:upper:]]');

方式2:

SELECT NAME FROM TEST 
WHERE regexp_like(NAME,'[A-Z]');

2: 如何判斷欄位裡面的值裡面包含特殊字元

例如,我想找出表TEST的欄位NAME裡面包含特殊字元&的相關記錄

SELECT NAME FROM ESCMOWNER.TEST 
WHERE regexp_like(NAME,'[&]');

3: 如何判斷欄位裡面的值前面或後面有空格

1:欄位前面或後面存在空格的記錄資訊:

SELECT * FROM TEST WHERE 
length(NAME) > length(trim(NAME))

2:欄位值前面存在空格的記錄資訊:

SELECT * FROM ESCMOWNER.TEST 
WHERE LENGTH(LTRIM(NAME)) < LENGTH(NAME);

3:欄位值後面存在空格的情況:

SELECT * FROM ESCMOWNER.TEST 
WHERE LENGTH(RTRIM(NAME)) < LENGTH(NAME);

4:如何判斷欄位裡面的值裡面包含空格

一直以來,以為判斷欄位裡面包含空格(空格位於任意位置)是一件特難、特麻煩的事情,但是在ORACLE的正則表示式函式REGEXP_LIKE面前,一切不在話下。

SELECT * FROM TEST WHERE REGEXP_LIKE(NAME,'( )+');

補充:下面看下Oracle的單表查詢語句

使用Oracle 資料庫的測試表單:

--單表查詢資料  語法 select (查詢) * 所有 /查詢的欄位,多個欄位 ,隔開  from (來自) 表名稱
--查詢所有員工的資訊 
select * from scott.emp;
select * from dept;
--查詢所有員工的編號,姓名和職位  指定欄位名查詢資料
select empno,ename,job from emp;
--查詢所有員工的編號,姓名和年薪
select * from emp;
select empno,sal*12 from emp;
--通過查詢使用運算子不會對原有資料進行修改
--只是在查詢的時候進行了運算,展現的是一個新的資料表格
select empno,sal*12 from emp;
--計算1+1?  提供了一個虛擬表,dual
-- dual是虛表,專用於測試使用 
-- 可以給欄位取別名
select 1+1 AS result1 from dual;
select sysdate AS DATES from dual;
--取別名 sal*12 改成income as 可以省略
--''單引號代表 字串 " "取別名時用,如果別名包涵特殊字元 使用""包起來
select empno,sal*12 "年薪" from emp;
--查詢所有的使用者的姓名,職位和薪資,以如下方式進行顯示
--姓名:xxx,職位:xxx,薪資:xxx
--字串 拼接使用 || 連線 不是+
select '姓名:'||ename||',職位:'||job||',薪資:'||sal info from emp;
--想展示所有的職位,不能有重複的  排除重複 
--去重複 使用 distinct
select distinct job,ename from emp;
--排序 升序 和 降序 ( asc desc ) 
--排序需要指定排序的欄位  預設是 升序 asc
--可以對數值 日期 字串型別進行排序
select * from emp order by job asc;
--按薪水降序,如果薪水相同,再將老員工排到後面(日期降序)
--按照多個欄位進行排序,order by 只要寫一次 ,後續的排序欄位使用,隔開 
select empno,hiredate,sal from emp order by sal desc,hiredate desc; 
--查詢所有員工編號,姓名,年薪,按照年薪排序
--排序可以用 別名 
select empno,sal*12 income from emp order by income desc;

總結

以上所述是小編給大家介紹的ORACLE中關於表的一些特殊查詢語句,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回覆大家的。在此也非常感謝大家對我們網站的支援!