A. sql中,電話號碼應該用什麼數據類型
可以用字元形式!因為如果有區號那第一個數字可能是0,所以用字元形式
B. 在sql中如何實現電話號碼中間的4位數字轉換成特殊字元
不同的資料庫做法不同
replace就是替換,雖然是字元的替換,不過你的特殊字元應該不是數字吧,所以你的號碼應該存成字元型,不然假設你的替換字元是xxxx,可是這個可是沒辦法插入數字格式的。
你說的中間四位怎麼定義,是類似xxx xxxx xxxx種種,還是XX YYYY xx這種,如果是前面那種那就用定位比如substr,不知道你是什麼資料庫,只能用oracle的方式寫,可以根據自己資料庫自行查找相應函數
比如,replace(字元串,substr(字元串,4,4),'XXXX')
這樣的話,假設源字元串為001 1101 1100,那麼就會變為001 xxxx 1100
當然,這個語句本身是有問題的,如果剛巧你的號碼比較特殊,比如001 0101 0101,那麼可能就變成了0XXXX XXXX 01,或者001 1001 1001 那麼就是001 XXXX XXXX
那麼怎麼只更換中間四位,其他位置有特殊的也不動呢?
有兩個辦法
(1)分開顯示人然後合並,比如 selelct substr(字元串,1,3)||『XXXX』|| substr(字元串,-1,4) (本寫法是oracle的,其他資料庫的連接符號各有不同,情自行查找)
(2)replace全部替換,其實合作前面的差不多,比如replace(字元串,substr(字元串,1), substr(字元串,1,3)||『XXXX』|| substr(字元串,-1,4))
C. SQL中查詢各職員電話號碼所在區號以及具體的電話號碼
用substring函數
用法如:substring('abcdefg',3,1)就得到d,指從abcdefg中的第三個後開始提取一位
最後的1可以省略,省略就是提取其後的全部字元
D. SQL server 2000資料庫中怎麼查詢一個表中電話號碼的末位數拜託各位大神
比如電話表(Tell)的列,姓名表(Name),電話表(number)
就可以這樣寫
select
Name
form
tell
where
number
like
%8''
E. 我現在有一堆電話號碼,但是前面都多了幾位,我只要保留後11位,在用sql語句怎麼做
截取字元啊 subStr(),各種資料庫的sql都有這個函數,但函數名字會有差異,自己查一下
F. sql 查詢 一個電話號碼,怎麼樣查找後四位不帶4的電話號碼
select * from user_phone where substr(電話號碼,-1,4) not like '%4%'
通過substr函數截取欄位後四位,進行范圍匹配,篩選出後四位不含4的記錄
G. 在sql中學生情況表中,查詢電話號碼第5位為3和5的記錄信息
select * from 表名 where datepart('yyyy',age)=1982 and tel like '_____[35]%'
age為年齡欄位,tel為電話欄位,試試吧。
H. 如何SQL讓電話號碼後四位自動編號,急,謝謝了
你試下把前幾位當一個欄位,後4位再建個欄位,類型位自動編號,
最後用getString()方法讀取出來,把這2個欄位相加就是電話號碼了.
I. sql中如何查詢電話號碼第7位為4和6的記錄信息
SUBSTR(電話,7,1) in('4','6')
J. sql 2000,要求限制電話號碼十一位,只能是數字~數據類型char(12),約束表達式怎麼寫
SQL Server 2000 沒有, 就拿個 SQL Server 2005 的來湊個數。
不大清楚 SQL Server 2000 裡面,有沒有 PATINDEX 函數了。
CREATE TABLE #temp(
test char(12)
CONSTRAINT chk_test
CHECK (
LEN(RTRIM(test)) = 11 AND
PATINDEX('%[^0-9]%', RTRIM(test)) = 0)
);
-- 失敗 長度不符合,且是英文
INSERT INTO #temp VALUES ('a');
-- 失敗 長度不符合
INSERT INTO #temp VALUES ('1');
-- 失敗 長度不符合
INSERT INTO #temp VALUES ('123456789012');
-- 失敗 長度符合 但是英文
INSERT INTO #temp VALUES ('1234567890a');
-- 成功
INSERT INTO #temp VALUES ('12345678901');