oracle欄位中找出欄位中含有非數字的方法

2021-06-21 22:13:28 字數 972 閱讀 2475

在oracle中字段中找出漢字的方法:可以利用length(testname)和lengthb(testname),其中length(testname)不論數字或者字元都算乙個,而lengthb則不同,比如說testname的值為:54看法12,用length(testname)的值為6,而lengthb(testname)的值為:8。利用這個就可以非常清楚的判斷乙個字元中是否包含漢字了(字母除外)。

例子:[sql]view plain

copy

select

'length的值為:' || length(testname) || '===>>>lengthb的值為:' || lengthb(testname) as name_length, testname from old_test_table  

以上很清楚的看出length跟lengthb的不同了吧,用這個可以知道某個欄位中是不是存在漢字。

2. 可以利用oracle中的正則regexp_like(in_code, '^(-+)[0-9]+(.[0-9]+)$')找出某字段中是不是存在非數字。

特殊的是我今天居然遇到了全形的數字,這樣的如果在去to_number(filed)的時候就會報錯,想把一些全形數字轉換成半形的資料,例子如下:

利用oracle的 to_single_byte 這個函式就可以解決問題 比如:

[sql]view plain

copy

update archives_in t1  

set t1.in_code = (select to_single_byte(t2.in_code)  

from archives_in t2  

where t1.in_id = t2.in_id)  

where

not regexp_like(t1.in_code,  

'^(-+)[0-9]+(.[0-9]+) 

oracle欄位中找出欄位中含有非數字的方法!!!

1.在oracle中字段中找出漢字的方法 可以利用length testname 和lengthb testname 其中length testname 不論數字或者字元都算乙個,而lengthb則不同,比如說testname的值為 54看法12,用length testname 的值為6,而len...

Oracle 中欄位屬性

oracle 中欄位屬性 說明 oracle的資料型別 oracle的資料型別 常用的資料庫字段型別如下 字段型別 中文說明 限制條件 其它說明 char 固定長度字串 最大長度2000 bytes varchar2 可變長度的字串 最大長度4000 bytes 可做索引的最大長度749 nchar...

SQL Quiz 找出欄位中最大值

內部訓練題目 最近在幫部門內的同仁快快樂樂學t sql,想到乙個好玩的題目給大家,假設有乙個資料表students,裡面記錄學生的三次考試成績,需要找到三次中最高的成績,請問要如何下sql 呢 這個是產生測試範例 希望大家可以寫超過三種以上的解法 1 使用case 的作法 如果要判斷的字段不多是還算...