sql判斷是否為數字
❶ sql 怎麼判斷是數字或字母
是不是想得到純數字、純字母、數字和字母 的分類?
declare @t table(name varchar(50))
insert into @t
select '123456' union
select '123abc.com' union
select 'abcd.com' union
select '0-boundaries.net' union
select '0001computers.net' union
select '000id.com'
select *
from @t
where
ISNUMERIC(substring(name,0,CHARINDEX('.',name,1)))=1
-- or name not like '%[^0-9]%' --純數字
or substring(name,0,CHARINDEX('.',name,1)) not like '%[^a-zA-Z]%' --純字母
or substring(name,0,CHARINDEX('.',name,1)) not like '%[^0-9a-zA-Z]%' --字母和數字
❷ SQL Server檢測是不是數字類型的函數
ISNUMERIC
確定表達式是否為一個有效的數字類型。
語法
ISNUMERIC ( expression )
參數
expression
要計算的表達式。
返回類型
int
注釋
當輸入表達式得數為一個有效的整數、浮點數、money 或 decimal 類型,那麼 ISNUMERIC 返回 1;否則返回 0。返回值為 1 確保可以將 expression 轉換為上述數字類型中的一種。
但是此函數存在Bug,就是'234a2342'同樣會認為是數字類型
可以替代的寫法是
PATINDEX('%[^0-9]%', @s)
如果返回值等於0,則是純數字型(沒有0~9之外的字元)。
對於支持小數點和正負數寫法是
PATINDEX('%[^0-9|.|-|+]%',@s)
❸ 判斷字元串是否為數字
1、創建測試表;create table test_str(str varchar2(200));
❹ 怎麼用SQL判斷欄位值是否為字元或者數字
在不改變你SQL的基礎上再加一個 LEFT(col1,1)<>'-'
select * from tb
where
ISNUMERIC(col1)>0 and LEFT(col1,1)<>'-'
---
ISNUMERIC(col1)>0這個本身就將資料過濾為只有數字(正數或負數,沒有你說的其他符號了),在其基礎上再將負數的情況過濾掉就OK了
❺ sql判斷一個字元串是否是數字
如果是ORACLE,可以:
select translate(str,'x1234567890','x') from al,如果得到的是空則是數字,如果不是空,則是帶字元串的。
❻ sql判斷是否為數字
不知道樓主的意思是不是要判斷一個欄位是否為純數字還是說是否包含數字?
可以用oracle自帶的正則表達式函數regexp_replace把數字全部取出來,然後計算數字的長度是否等於這個欄位的長度,如果等於的話說明這個值全部是數字,如果不等於的話說明值裡麵包含非數字,測試語句如下:
select(regexp_replace('lss12345',
'[^0-9]'))
from
al;---取出值裡面的全部數字
select
length('lss12345'),length(regexp_replace('lss12345',
'[^0-9]'))
from
al;
---查詢出欄位的長度和欄位內數字的長度
select*
from
al
where
length('lss12345')
=
length(regexp_replace('lss12345',
'[^0-9]'))
;
----查詢這個欄位所有的純數字列
❼ sql oracle 判斷為數字
SELECT * FROM ITAB WHERE ISNUMERIC(FIELDNAME)>0
函數 ISNUMERIC(col1)>0 是判斷欄位值是否是數值的函數,若是整數、浮點等數字返回是「1」
❽ sql語句如何判斷欄位是否為數字
--在不改變你SQL的基礎上再加一個
LEFT(col1,1)<>'-'
select
*
from
tb
where
ISNUMERIC(col1)>0
and
LEFT(col1,1)<>'-'
---
ISNUMERIC(col1)>0這個本身就將資料過濾為只有數字(正數或負數,沒有你說的其他符號了),在其基礎上再將負數的情況過濾掉就OK了
❾ sql 判斷是否為數字
不知道你是什麼資料庫啊。
以後你要詢問有關資料庫函數的問題, 最好明確說明一下啊。
Oracle 通過正則表達式判斷, 字元串是否是數字。
可以使用正則表達式的方式來判斷。
REGEXP_LIKE( 欄位 , '(^[+-]?\d{0,}\.?\d{0,}$)'
來判斷 是否是數字
❿ sql如何在字元串里判斷是否有數字或者字母
判斷是否含有字母
select PATINDEX('%[A-Za-z]%', 『ads23432')=0
(如果存在字母,結果>1)
判斷是否含有數字
PATINDEX('%[0-9]%', 『234sdf')=0
(如果存在數字,結果>1)