關於SQL語句的排序問題(中文和數字排序)

2023-01-16 22:05:40 字數 911 閱讀 1938

1樓:匿名使用者

自己做函式把projectno拆成3份,order by 的時候用函式,

select * from 表 order by 函式(projectno, '市區'), 函式(projectno, '檔名'), 函式(projectno,'號')。

分割函式,oracle的。

create or replace function spliteprojectno(vprojectno in varchar2, vsplitetype in varchar2) return varchar2 is

vtempno varchar2(200);

begin

if vprojectno is null then

return vprojectno;

end if;

if vsplitetype = '市區' then

return substr(vprojectno, 1, 2);

elsif vsplitetype = '檔名' then

vtempno:= substr(vprojectno, 3);

return substr(vtempno, 1, instr(vtempno, '-') - 1);

elsif vsplitetype = '號' then

return substr(vprojectno, instr(vprojectno, '-') + 1);

else

return '';

end if;

end;/

2樓:

給你一個思路:

1.把欄位擷取3段後插入一個臨時表.例如:a欄位:欽市,b欄位:pc2010-,c欄位:5

2.再利用order by a b c

SQL語句的問題,SQL語句的問題

用聯接。假設資料庫名為test,列1為a,列2為b,排序欄位為id。下列語句可查出所有b列與其他行的a列相同的記錄 select t1.a,t1.b from test t1 join test t2 on t1.b t2.a where t1.a t2.a 下列語句可查出第5行是否存在b列與其他行...

SQL語句的 號的問題,SQL中取序號的問題

不可以省略,銀行帳號名稱是一個變數,也是一個字串。set sql alter table dbo.臨時表1 add 銀行帳號名稱 int default 0 其實就是執行了三個字串的相加操作,把結果賦值給 sql變數。括號是為了相容sql server裡的關鍵字,如果欄位名是關鍵字的話,某些版本的s...

sql的where語句中and和or能不能同時使用

沒有用 括號的情況下,and優先 where a b or a c and a d 等價於 where a b or a c and a d 如果想要先計算or where a b or a c and a d 是可以同時使用的。但要看業務要求 使用的場景舉例 查詢表中2000年和2002年出生的男...