當前位置:首頁 » 編程語言 » sql判定字元串為數字
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql判定字元串為數字

發布時間: 2022-06-26 02:18:42

1. sql如何在字元串里判斷是否有數字或者字母

判斷是否含有字母
select PATINDEX('%[A-Za-z]%', 『ads23432')=0

(如果存在字母,結果>1)
判斷是否含有數字
PATINDEX('%[0-9]%', 『234sdf')=0

(如果存在數字,結果>1)

2. sql語句如何判斷欄位是否為數字

sql語句判斷欄位是否為數字可以參考下面的例子:

select * from biao where isnumeric(zian)=0 查非數回字答

select * from biao where isnumeric(zian)=1 查純數字

(2)sql判定字元串為數字擴展閱讀:

SQL參考語句

查找:select * from table1 where field1 like 』%value1%』 (所有包含『value1』這個模式的字元串)

排序:select * from table1 order by field1,field2 [desc]

求和:select sum(field1) as sumvalue from table1

平均:select avg(field1) as avgvalue from table1

3. SQL 中怎麼把字元串轉換為數字

具體方法如下:

  1. 將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;

    例如:將pony表中的d 進行排序,可d的定義為varchar,可以這樣解決;

    select * from pony order by (d+0);

  2. 在進行ifnull處理時,比如 ifnull(a/b,'0') 這樣就會導致 a/b成了字元串,因此需要把'0'改成0,即可解決此困擾;

  3. 比較數字和varchar時,比如a=11,b="11ddddd";

    則 select 11="11ddddd"相等;

    若絕對比較可以這樣:

    select binary 11 =binary "11ddddd";

  4. 字元集轉換 : CONVERT(xxx USING gb2312);

    類型轉換和SQL Server一樣,就是類型參數有點點不同 : CAST(xxx AS 類型),CONVERT(xxx,類型);

    類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。

4. SQL 中怎麼把字元串轉換為數字

具體方法如下:
將字元的數字轉成數字,比如'0'轉成0可以直接用加法來實現;
例如:將pony表中的d
進行排序,可d的定義為varchar,可以這樣解決;
select
*
from
pony
order
by
(d+0);
在進行ifnull處理時,比如
ifnull(a/b,'0')
這樣就會導致
a/b成了字元串,因此需要把'0'改成0,即可解決此困擾;
比較數字和varchar時,比如a=11,b="11ddddd";

select
11="11ddddd"相等;
若絕對比較可以這樣:
select
binary
11
=binary
"11ddddd";
字元集轉換
:
CONVERT(xxx
USING
gb2312);
類型轉換和SQL
Server一樣,就是類型參數有點點不同
:
CAST(xxx
AS
類型),CONVERT(xxx,類型);
類型必須用下列的類型:BINARY、CHAR()、DATE、TIME、DATETIME、DECIMAL、SIGNED、UNSIGNED。

5. sqlserver中如何把字元串轉換成數字

SQL Server中的數值類型分為兩種,一種是精確的數值類型,具體的數據類型有:bit、tinyint、smallint、int、bigint、smallmoney、money和decimal,這些數據類型能夠精確的表明某以數值;另一種是近似的數值類型,具體就是float和real。浮點數據為近似值,因此,並非數據類型範圍內的所有值都能精確地表示。
有些時候我們需要將這些數值類型轉換為字元串類型,用到的轉換函數就是cast和convert,這兩個函數的作用都是進行類型轉換,只不過語法格式不同。據說在轉換時還是有一定的區別的,不過我個人更習慣於使用convert函數,應該這個函數一方面更像是個函數的語法,另一方面在做時間和數值轉換成字元串時還可以指定轉換的格式。
對於精確數值的數據類型,轉換出來的字元串就是我們存儲的數值。比如:
declare @i intset @i=123456789
print 'test:'+convert(varchar(20),@i)
輸出就是:test:123456789
而如果對於近似數值的數據類型,那麼可就沒有那麼簡單了。
declare @i floatset @i=123456789
print 'test:'+convert(varchar(20),@i)
輸出結果:test:1.23457e+008
輸出的結果是使用科學計數法來表示的,再看看可否通過指定轉換樣式來指定不使用科學計數法呢?幫助文檔中說到float 或 real 轉換為字元數據時的 style 值:
0(默認值)最大為 6 位數。根據需要使用科學記數法。
1 始終為 8 位值。始終使用科學記數法。
2 始終為 16 位值。始終使用科學記數法。
我們的值是123456789,超過了6位數.所以不管是0還是1,2結果都會使用科學計數法來表示。那麼要怎麼樣才能將我們的數據不轉換成科學計數法而輸出呢?比較簡單的辦法就是將近似數據轉換為精確數據,然後再將精確數據轉換成字元串。
同樣以上面的例子為例, 進行兩次數據類型的轉換如下:
declare @i floatset @i=123456789
print 'test:'+convert(varchar(20),convert(int,@i))
輸出:test:123456789如果是有小數,那麼我們要轉換出小數位的話,可以轉換成decimal,轉換出的小數位數在定義decimal時指定。比如要輸出4位小數,那麼轉換代碼是:
declare @i floatset @i=123456789.12
print 'test:'+convert(varchar(20),convert(decimal(18,4),@i))
輸出:test:123456789.1200

6. 怎樣在sql裡面判斷一個字元串是否可以轉換為數字

CREATE FUNCTION [dbo].[fn_IsNumberic]
(
@str nvarchar(max)
)
RETURNS int
AS
BEGIN
declare @res int
set @res=case when ISNUMERIC(isnull(@str,0))=1 then
case when PATINDEX('%[^0-9.]%',rtrim(ltrim(isnull(@str,0))))=0 then 1
end
end
return isnull(@res,0)
END
GO

7. 在SQL語句裡面如何將字元型轉換成數字型

先檢查金額列的數據是否都符合小數規范,用cast(金額 asdecimal(10,4))>500或者

convert(decimal(10,4),金額)>500

註:decimal的長度和小數位數根據自己需要設定

sql中將字元串數字轉換成數字:

方法一:SELECT CAST('123' AS SIGNEDinteger);

方法二:SELECT CONVERT('123',SIGNED);

方法三:SELECT '123'+0;

(7)sql判定字元串為數字擴展閱讀:

能將字元型轉換成數字型,就能將數字轉化為字元,對於精確數值的數據類型,轉換出來的字元串就是我們存儲的數值。比如:

declare @i int

set @i=123456789

print 'test:'+convert(varchar(20),@i)

輸出就是:test:123456789

而如果對於近似數值的數據類型,那麼可就沒有那麼簡單了。

declare @i float

set @i=123456789

print 'test:'+convert(varchar(20),@i)

輸出結果:test:1.23457e+008

8. sql判斷一個字元串是否是數字

如果是ORACLE,可以:
select translate(str,'x1234567890','x') from al,如果得到的是空則是數字,如果不是空,則是帶字元串的。

9. 怎麼用SQL判斷欄位值是否為字元或者數字

在不改變你SQL的基礎上再加一個 LEFT(col1,1)<>'-'
select * from tb
where
ISNUMERIC(col1)>0 and LEFT(col1,1)<>'-'
---
ISNUMERIC(col1)>0這個本身就將資料過濾為只有數字(正數或負數,沒有你說的其他符號了),在其基礎上再將負數的情況過濾掉就OK了