A. sql 判斷某列的數字值0-7賦上7個對應的漢字!!!
select *,case when 數字列=1 then '文字1 when 數字列=2 then '文字2 else 其它 end from golffield g where g.golffield_Delflag = 0
B. SQL 判斷欄位值是否有中文
實現思路:漢字的Unicode是用「\」開始的,這個是與其它字元的區別。
sql: select * from tablename where asciistr(columnTest) like '%\%';
備註:這個asciistr就是字元轉Unicode的方法,記住用法就可以了。
C. 現在要查詢一個欄位至少包括兩個中文字,高分急求SQL語句,謝謝~~~
select * from table where patindex('%[吖-座]%',欄位) > 0
--[吖-座]是中文字元集第一個到最後一個的范圍
這個是判斷是否有中文
D. 判斷一個欄位少於10個漢字sql怎麼寫
SUBSTRING(str, pos, len)
or
SUBSTRING(str FROM pos FOR len)
str: 欄位名
pos: 起始位置
len: 長度
select substring(欄位名,0,10) from 表名
E. 求sql語句,怎樣查詢一個表中都是漢字的記錄
判斷每個字元是否處在中文的區間(unicode range).
如果你的資料庫字元集與環境變數都是中文字元集, 可以使用一個簡單的辦法判斷一個欄位是否含有ascii7的字元, 基本上可以認為這個欄位是否含有中文字元.
F. SQL中大於多少個漢字或多少個位元組,並且不能出現數字怎麼表示,在線等
你是要寫存儲過程?
還是建表的約束條件啊?
大於多少個漢字或多少個位元組 比較簡單, LENGTH( 列名 ) > 數字。 基本上就是長度判斷了。
註:
Oracle,DB2 ,MySQL, SQLite 函數名字是 LENGTH
SQL Server 函數名字是 LEN
不能出現數字, 恐怕需要用正則表達式處理,比較方便。
這個要看你的資料庫, 是什麼資料庫了。
因為不同的資料庫, 正則表達式 的那個函數不一樣的。
對於 Oracle,
使用 REGEXP_INSTR ( 列名, '[0-9]+') = 0 來實現
對於 SQL Server
使用 PATINDEX(『%[0-9]%』, 指定字元串) = 0 來實現
G. 為什麼這個表我這樣寫sql不能查出姓名只有兩個漢字的學生信息
-- 查詢姓名為兩個漢字的記錄
SELECT * FROM stu_student WHERE stu_name LIKE '__';
幾個下劃線就是幾個漢字,這是字元通配符,也可以判斷由幾個字母組成
H. mysql查詢字元串中有幾個字元
length: 是計算欄位的長度一個漢字是算三個字元,一個數字或字母算一個字元
char_length:不管漢字還是數字或者是字母都算是一個字元
用這2個,具體看你的需求了,,,
你是要去除,?然後再看長度?
SELECT LENGTH(REPLACE('1,2,3,4',',','')),根據需求替換char_length就可以了
I. SQL中查詢中間三個任意漢字
select * from 表 where 某列 like '交___稅'
J. oracle sql 判斷 欄位是否是漢字
1、使用ASCIISTR函數判別
ASCIISTR函數說明:ASCIISTR返回字元的ASCII形式的字元串。非ASCII的字元被轉化為xxxx的形式。使用ASCIISTR函數也是根據非ASCII字元會被轉化這個特性來判別中文字元,只要裡麵包含中文字元,則必定會有xxx這樣的字元。
使用 ASCIISTR(NAME_ONE) LIKE '%\%' 就能判別那些有中文的記錄。如下所示:
SELECT NAME_ONE FROM TEST WHERE ASCIISTR(NAME_ONE) LIKE'%\%'
2、使用CONVERT函數判別
CONVERT函數說明:
CONVERT(inputstring,dest_charset,source_charset)
inputstring:要轉換的字元串
dest_charset:目標字元集
source_charset:原字元集
3、使用函數length和lengthb來判別
使用函數length與lengthb來判別,是基於中文字元佔用2~4個位元組,而ASCII字元佔用一個位元組,那麼對比LENGTH與LENGTHB就會不一樣。這樣就能判別欄位中是否包含中文字元,但是跟ASCIISTR一樣,如果裡面的非ASCI字元包含非中文,它一樣不能判別。依然有取巧嫌疑。
SELECT NAME_ONE FROM TEST WHERE LENGTH(NAME_ONE) != LENGTHB(NAME_ONE);
(10)sql判斷有幾個漢字擴展閱讀
Oracle SQL編寫注意事項:
1、SQL語句用大寫的;因為Oracle總是先解析SQL語句,把小寫的字母轉換成大寫的再執行。
2、數據表最好起別名;因為便於sql優化器快速分析。
3、盡量不要使用 insert into table value(?,?,?,?,?)格式,要指出具體要賦值的欄位。INSERT.....SELECT的效率會有提高。
4、select與from語句之間只定義返回的欄位名,除非返回所有的欄位,盡量不要使用 * 。
5、select欄位名應按照表的欄位物理順序編寫,欄位提取要按照「需多少、提多少」的原則,原因是大批量數據的抽取會影響sql緩存的效率。
6、COUNT(*)也是要避免的,因為Count(*)會對全欄位做聚集。但一般的觀點相反, count(*) 比count(1)稍快 , 當然如果可以通過索引檢索,對索引列的計數仍舊是最快的. 例如 COUNT(EMPNO)。
7、條件中使用or 會引起全表掃描,比較影響查詢效率,盡可能少用或不用,實在不行可以用UNION代替。