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...