ND REGEXP_LIKE( Val, '^[^0-9]')-- 2
--AND REGEXP_LIKE(Val, '^[A-Za-z]')-- 3
--145, SQL SERVER
SELECT Val
FROM
(
SELECT '123' Val
UNION ALL
SELECT '456'
UNION ALL
SELECT 'ABC'
UNION ALL
SELECT 'xyz'
UNION ALL
SELECT '@789'
UNION ALL
SELECT '789@'
) A
WHERE 1=1
AND Val LIKE '[0-9]%' -- 1, 字(0-9)
--AND Val LIKE '[^0-9]%'-- 2, 非 字
--AND Val LIKE '[A-Z]%' -- ,3 英文(A-Z)
--------------中文Unicode区间----------------
---------------------------------------------
WITH Tally(N) AS
(
SELECT 19966 N
UNION ALL
SELECT N +1 N
FROM Tally
WHERE N<40892
)
SELECT N, NCHAR(N) Word
FROM Tally
OPTION (MAXRECURSION 32000)
------------------利用中文是两个字节的特性判断-------------------
--150, SQL SERVER
SELECT Word
, LEN(Word)
, DATALENGTH(Word)
, CASE WHEN LEN(Word) = DATALENGTH(Word) THEN '英文'
ELSE '中文'
END Judge
FROM
(
SELECT 'English' Word
--FROM DUAL
UNION ALL
SELECT '中文'
--FROM DUAL
UNION ALL
SELECT ' '
--FROM DUAL
) A
--149, ORACLE 利用中文是两个字节的特性判断
SELECT Word
, LENGTH(Word) "Len"
, LENGTHB(Word) "LenB"
, CASE WHEN LENGTH(Word) = LENGTHB(Word) THEN '英文'
ELSE '中文'
END Judge
FROM
(
SELECT 'English' Word
FROM DUAL
UNION ALL
SELECT '中文'
FROM DUAL
UNION ALL
SELECT ' '
FROM DUAL
)