當前位置:首頁 » 編程語言 » sql查詢欄位念中文
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

sql查詢欄位念中文

發布時間: 2022-07-18 07:11:57

A. sql資料庫的英文欄位,如何在程序中顯示成中文

  1. Alias (as)

    通過使用 SQL,可以為列名稱和表名稱指定別名(Alias)。

  2. 語法:(列的 SQL Alias 語法)

    SELECT column_name AS 中文名稱
    FROM table_name

  3. 擴展(表的sql alias 語法)

    SELECT column_name(s)FROM table_name
    AS alias_name

  4. 創建測試表並且生成數據

    create table tb

    ( spid varchar(11),

    spmch varchar(20),

    shl numeric(10,2) )

    insert into tb

    values ('01','蘋果',10),

    ('02','梨子',20)

  5. 測試結果:

    select spid as 商品id,spmch as 商品名稱,shl as 商品數量 from tb

    結果:

B. 查找欄位值有中文的sql語句

select * from table1 where PATINDEX(N'%[吖-咗]%',欄位) >0
或者
select * from table1 where 欄位 like '%吖-咗%'

原理是使用通配符的 - 符號 使字元匹配漢字字元范圍
同理 可以反其道而行 讓其取非英文、標點符號的字元串,但這樣通配符不好寫

如果是mysql 或者其他可以使用正則表達式匹配的就很簡單了

C. 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);

(3)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代替。

D. 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

E. sql查詢所有包含中文的數據

判斷length(content)和lengthb(content)是否相等,如果不相等則包含中文,否則全英文。
length(content)計算content的字元個數,一個中文字元長度為1;
lengthb(content)計算content的位元組位數,一個位長度為1,一個中文字元長度為2。

1樓說的不對

F. sql表為中文的查詢語句

和英文的基本一樣.
除非你中文裡麵包含空格什麼的, 就要額外處理了.

比如 Oracle 用雙引號
SELECT * FROM "中文 表名"

SQL Server 用 []
SELECT * FROM [中文 表名]

MySQL用 ` ( 標准鍵盤 數字1 左邊的那個符號)
SELECT * FROM `中文 表名`

G. sql查詢出來的結果將某欄位值顯示中文

先看源數據是不是中文,一般sql不會改變欄位的值和類型

H. 為什麼SQL語句不可以查詢中文欄位

資料庫中的表欄位名不能為中文。比如你的「桌號」就是表「tableuse」的一個欄位,故不能為中文,你可以把表中的欄位名改為「tableno」,然後把SQL語句改為String execute="delete from tableuse where tableno=\""+tableNumber+"\";"; 就行了!

I. SQL 查詢語句有中文欄位,查不到結果,如何解決

從你的「語句:select
SubCategory
from
tblSubCategory
where
MainCategory
=
'固定資產'」中來看,欄位有「SubCategory
」和「MainCategory
」兩個,只有欄位「MainCategory
」的值是
'固定資產':是中文;
再者你所說「欄位用的是繁體中文」,理解有點暈,也許你說錯了吧,不如你把「固定資產"改成繁體中文「固定資產」
試試吧。。。。。快給分。。。。。。

J. sql語句有中文,亂碼怎麼解決

如果SQL Server 系統排序規則為"SQL_Latin1_General_CP1_CI_AS",那麼資料庫及資料庫欄位排序規則都默認為"SQL_Latin1_General_CP1_CI_AS",如果欄位為varchar,插入中文,資料庫顯示為"?",且數據無法修復。解決辦法如下:
1。 修改欄位排序規則為"Chinese_PRC_CI_AS",varchar改nvarchar,SQL插入語句中,中文字元前加"N",可以插入中文字元。
2。 修改資料庫排序規則為"Chinese_PRC_CI_AS",欄位保持varchar,SQL語句不變,插入中文失敗,查看欄位屬性後發現,欄位排序規則實際上沒有變化,還是默認為"SQL_Latin1_General_CP1_CI_AS",再修改欄位排序規則,varchar不變,SQL不變,可以插入中文字元。
總結:
1。 修改系統排序規則沒有試過。
2。 修改資料庫排序規則不會把資料庫中欄位的排序規則改掉,但是為了顯示中文,資料庫排序規則必須改。
3。 僅僅修改欄位排序規則,還不能完全解決問題。