Oracle中查詢結果替換的問題

2022-12-25 08:46:08 字數 5462 閱讀 8041

1樓:匿名使用者

select name, case when id>=3 then '高' else '低' end

from tab

如果要你那個期望結果,必須要分開考慮。

select 組, sum(數量), max(case when 狀態 <= 2 then '小' else null end)

from tab where 狀態 <= 2 group by 組

union all

select 組, sum(數量), max(case when 狀態 > 2 then '大' else null end)

from tab where 狀態 > 2 group by 組

2樓:

select name, decode(sign(id - 3), -1, '低', '高') from table

oracle用sign 如果id = 3 ,得到的是0,大於得到1,小於得到-1

把上面得到的結果作為乙個新錶t,然後以t為基表去得到分組彙總

select t.name, t.status, sum(t.number)

from (select name, decode(sign(status - 2), 1, '大', '小') as status, number from table) t

group by t.name, t.status

3樓:匿名使用者

l(col01, '空') -- sql server寫法select nvl(col01, '空')-- oracle寫法如果欄位是空字串' '

select replace(col01, ' ', '空')

oracle sql語句中的替換問題

4樓:匿名使用者

我認為是,試下吧:

update tab set a=replace(replace(a,'1','01'),'00','0')

update tab set a=replace(replace(a,'2','02'),'00','0')

update tab set a=replace(replace(a,'3','03'),'00','0')

update tab set a=replace(replace(a,'4','04'),'00','0')

兩次替換,裡面的替換將1、2、3、4不加區分地加零,而外面的替換將兩個零變成乙個。

5樓:

update tab set a = to_char(a, '00');

6樓:匿名使用者

建議舉個例子,方便我們幫忙解決

7樓:

哥們,你這問題太籠統了,舉個例子唄,到底想解決什麼問題

oracle資料庫,查詢到的結果怎樣修改??

8樓:萬俟晫

在把oracle查詢結果轉換為sql server的時候要特別當心一些不容易注意到的問題。

我們知道,t-sql是sql server的語言引擎,而oracle的語言引擎卻是plsql.這兩種查詢語言都對

ansi sql-92標準進行了擴充套件以提供額外的支援力度。你所建立的應用程式幾乎都要用到這些補充特性。本文就對最常用的、非標準的oracle擴充套件進行了說明,同時還要介紹下如何

對這些擴充套件進行轉化以用在sql server環境下。

列的選擇

用plsql執行資料查詢的時候,from子句是必須的,這同sql server的要求是一樣的。 select語句必須選擇針對的資料表。在oracle資料庫內有一種特殊的表dual.

dual表由

oracle連同資料字典一同建立,所有的使用者都可以用名稱dual訪問該錶。這個表裡只有一列dummy,該列定義為varchar2

(1)型別,有一行值x.

從dual表選擇資料常被用來通過select語句計算常數表示式,由於dual只有一行資料,所以常數只返回一次。

oracle下的dual查詢如下所示:

select

『x』 from dual

而對等的sql server查詢則是下面這個樣子:

select 『x』

連線oracle用|| 符號作為連線符,而sql server的連線符是加號:+ .

oracle查詢如下所示:

select 『name』 || 『last name』

from tablename

對應的sql server查詢如下所示:

select 『name』 + 『last name』

數字取捨

oracle資料庫內有乙個trunc函式,該函式返回m位十進位制數的n位;如果省略m則n就是0位。m的值可以為負,表示截去小數點左邊m位數字。

在sql server下可以用round或者floor.

以下是oracle查詢:

select

trunc(15.79,1) "truncate" from dual;

下面是同類查詢的sql server版本:

select round(15.79, 0) rounded ,

round(15.79, 0,1) truncated

select floor(round(15.79, 0)),

floor(round(15.79, 0,1) )

在把oracle查詢轉換為sql server的時候要特別當心一些不容易注意到的問題。我們知道,t-sql是sql server的語言引擎,而oracle的語言引擎卻是plsql.這兩種查詢語言都對

ansi sql-92標準進行了擴充套件以提供額外的支援力度。你所建立的應用程式幾乎都要用到這些補充特性。本文就對最常用的、非標準的oracle擴充套件進行了說明,同時還要介紹下如何

對這些擴充套件進行轉化以用在sql server環境下。

列的選擇

用plsql執行資料查詢的時候,from子句是必須的,這同sql server的要求是一樣的。 select語句必須選擇針對的資料表。在oracle資料庫內有一種特殊的表dual.

dual表由

oracle連同資料字典一同建立,所有的使用者都可以用名稱dual訪問該錶。這個表裡只有一列dummy,該列定義為varchar2

(1)型別,有一行值x.

從dual表選擇資料常被用來通過select語句計算常數表示式,由於dual只有一行資料,所以常數只返回一次。

oracle下的dual查詢如下所示:

select

『x』 from dual

而對等的sql server查詢則是下面這個樣子:

select 『x』

連線oracle用|| 符號作為連線符,而sql server的連線符是加號:+ .

oracle查詢如下所示:

select 『name』 || 『last name』

from tablename

對應的sql server查詢如下所示:

select 『name』 + 『last name』

9樓:不綺煙

1、如果你是想修改資料庫裡的字段並儲存的話,可以使用:

select t.*,t.rowid from tablename t where。。。

點選查詢結果 上面的 有個小鎖頭的 按鈕,變成開的就可以 ,編輯結果了,編輯後,點選 紅鉤的 按鈕,以及頁面上面的 確認儲存更改資料的按鈕(就是 有個綠色的小箭頭,下面有個小圓柱--對應的紅色的小箭頭 是回滾按鈕,不儲存你的修改到資料庫)。

確認後,資料修改成功,並儲存到資料庫。

適合修改少量資料,且此操作不鎖表,既操作同時不影響其他對錶的查詢修改等。

2、update語句

update tablename set 欄位1=值,欄位2=值 where 。。

合適批量修改,鎖表。

3、也可將表中的資料用sql的語句整理好,插入新建的臨時表,truncate原來的表的資料,再將臨時表的資料插回原表。

10樓:匿名使用者

查詢到的結果可用for update來修改。

如:select * from emp;

查詢到以下資料:

此時語句可改寫:

select * from emp for update;

然後點選如圖圖示:

此時可以修改表中內容,如將empno為8888的改成4444。按圖中所示進行操作即可。

11樓:一襲青衣入紅塵

用select for update 語句查出想改的資料後修改

或者直接用update語句按條件修改

12樓:平秀紅

select 1,a,name||'的成績' from dual;

oracle sql語句中,有沒有能夠將結果集中數字替換成漢字的函式?

13樓:hui翽

用decode()函式。

具體語句為:select decode(flag,1,'是',0,'否') from table,語句的意思是選擇表中的「1」替換為「是」,「0」替換為「否」。

decode函式,是oracle公司的sql軟體oracle pl/sql所提供的特有函式計算方式,以其簡潔的運算方式,可控的資料模型和靈活的格式轉換而聞名。

decode的語法:decode(value,if1,then1,if2,then2,if3,then3,...,else),表示如果value等於if1時,decode函式的結果返回then1,...

,如果不等於任何乙個if值,則返回else。通過一些函式或計算替代value,可以使decode函式具備大於、小於或等於功能。

14樓:

select user_name,password,case when flag='0' then '否' when flag='1' then '是' else '其他' end from user_data

15樓:我tm不管

select decode(flag,1,'是',0,'否') from table

16樓:流星de放逐

case sign when 1 then '是' else '否' end

關於oracle中替換字串的問題,高手請進

17樓:大耳朵狗圖圖

oracle有乙個trim函式可以把空格去掉,至於to_single_byte不能對大於4000字元的字串處理

這個問題可不可以把源自段用substr函式切分到幾個合適長度的字段(臨時表裡或可以的話直接在原表新增新字段),然後再用to_single_byte,處理好後update回去。資料量大的話不建議用update操作,會產生大量的行遷移情況,最好是直接抽資料往乙個新表裡更新。

如何在SQL中替換,SQl 裡 如何替換查詢結果

update 表set a2 case when len a1 18 thencase when substring a1,17,1 in 1 3 5 7 9 then 01 else 02 end when len a1 15 thencase when substring a1,15,1 in ...

如何用的查詢替換功能替換掉中的空格和空行

呵呵,這是bai最簡單的啊兄弟。du你在zhi查詢裡面 輸入一dao個空格,然後在替換裡面什回麼也不輸入,答然後選擇確定,這樣就可以替換掉空格啦。在查詢裡面選擇輸入特殊字元,選擇兩個回車符,然後在替換裡面選擇輸入特殊字元,選定乙個回車符,確定,就可以搞定啦。查詢替換裡面 特殊字元 p 段落標記 是可...

oracle中如何查詢資料表中重複的資料

根據感覺重複的欄位分割槽,加上一個row number,如果row number 1,那麼就找到了重複的資料了 select from select t.owner,t.table name,t.cnt,t.create time row number over partition by t.tab...