⑴ sql 判斷欄位值是否有中文
實現思路:漢字的Unicode是用「\」開始的,這個是與其它字元的區別。
sql: select * from tablename where asciistr(columnTest) like '%\%';
備註:這個asciistr就是字元轉Unicode的方法,記住用法就可以了。
⑵ 為什麼SQL語句不可以查詢中文欄位
資料庫中的表欄位名不能為中文。比如你的「桌號」就是表「tableuse」的一個欄位,故不能為中文,你可以把表中的欄位名改為「tableno」,然後把SQL語句改為String execute="delete from tableuse where tableno=\""+tableNumber+"\";"; 就行了!
⑶ SQL 查詢語句有中文欄位,查不到結果,如何解決
從你的「語句:select
SubCategory
from
tblSubCategory
where
MainCategory
=
'固定資產'」中來看,欄位有「SubCategory
」和「MainCategory
」兩個,只有欄位「MainCategory
」的值是
'固定資產':是中文;
再者你所說「欄位用的是繁體中文」,理解有點暈,也許你說錯了吧,不如你把「固定資產"改成繁體中文「固定資產」
試試吧。。。。。快給分。。。。。。
⑷ 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);
(4)查詢欄位值有中文的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代替。
⑸ 現在要查詢一個欄位至少包括兩個中文字,高分急求SQL語句,謝謝~~~
select
*
from
table
where
patindex('%[吖-座]%',欄位)
>
0
--[吖-座]是中文字元集第一個到最後一個的范圍
這個是判斷是否有中文
⑹ mysql中如何查詢出某一個欄位中包含漢字的數據(只要欄位中有漢字就查詢出來)
myid是什麼類型,是數值類型應這樣寫:
select * from table where saleid=2376 and myid in (2,3,4,5,6)
如果myid是字元類型,應該這樣寫:
select * from table where saleid=2376 and myid in ('2','3','4','5','6')
⑺ 查找欄位值有中文的sql語句
select * from table1 where PATINDEX(N'%[吖-咗]%',欄位) >0
或者
select * from table1 where 欄位 like '%吖-咗%'
原理是使用通配符的 - 符號 使字元匹配漢字字元范圍
同理 可以反其道而行 讓其取非英文、標點符號的字元串,但這樣通配符不好寫
如果是mysql 或者其他可以使用正則表達式匹配的就很簡單了
⑻ sql查詢出來的結果將某欄位值顯示中文
先看源數據是不是中文,一般sql不會改變欄位的值和類型
⑼ SQL問題,比如表中有個欄位 A,它的值一般都是 數字 跟 中文 兩種,如何查詢出值為 中文 的記錄
select*fromtablewhereISNUMERIC(column)=0--這個是查詢出非純數字的明細
如果需要找出純中文的,那麼需要用正則表達式
CREATEFunction[dbo].[RemoveNonNumericCharacters](@TempVarChar(1000))
ReturnsVarChar(1000)
AS
Begin
WhilePatIndex('%[^0-9]%',@Temp)>0
Set@Temp=Stuff(@Temp,PatIndex('%[^0-9]%',@Temp),1,'')
Return@TEmp
End
⑽ sql查詢所有包含中文的數據
判斷length(content)和lengthb(content)是否相等,如果不相等則包含中文,否則全英文。
length(content)計算content的字元個數,一個中文字元長度為1;
lengthb(content)計算content的位元組位數,一個位長度為1,一個中文字元長度為2。
1樓說的不對