① sql全形字元與半形字元哪個大
全形的出現是為了頁面排版,全形兩個位元組,半形英文,數字一個位元組,半形中文一個位元組
② sql中如果數據有在全形下輸入的,又有半形下輸入的要怎麼區分
先用replace 將全形換為半形,而後再繼續處理
③ sqlserver表中圓角數據怎麼轉化成半形
sql:
CREATE FUNCTION f_Convert(
@str NVARCHAR(4000), --要轉換的字元串
@flag bit --轉換標志,0轉換成半形,1轉換成全形
)RETURNS nvarchar(4000)
AS
BEGIN
DECLARE @pat nvarchar(8),@step int,@i int,@spc int
IF @flag=0
SELECT @pat=N'%[!-~]%',@step=-65248,
@str=REPLACE(@str,N' ',N' ')
ELSE
SELECT @pat=N'%[!-~]%',@step=65248,
@str=REPLACE(@str,N' ',N' ')
SET @i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
WHILE @i> 0
SELECT @str=REPLACE(@str,
SUBSTRING(@str,@i,1),
NCHAR(UNICODE(SUBSTRING(@str,@i,1))+@step))
,@i=PATINDEX(@pat COLLATE LATIN1_GENERAL_BIN,@str)
RETURN(@str)
END
GO
update table_1 set column_name=dbo.f_Convert(column_name,0)
當數據量比較大時,一條一條改不太現實,可以用上面的函數批量更改
④ sqlserver資料庫,like後面有半形[字元就查不到數據
sql的like語法裡面 []有特殊含義,類似正則表達式的范圍,比如[0-9]代表數字
解決方法一是比如[可以用[[]查到,另一方法是用轉義
SELECT * from sampleTable where sampleData like '[%' ESCAPE ''
⑤ sql 表中一個欄位里包含全形和半形括弧 查詢時如何忽略全形半形
建議你使用模糊查詢,忽略掉括弧。這樣就無需考慮全形還是半形了。
select 。。。。 from 表名 where 公司名稱 like '**化工%集團%';
⑥ SQL為啥不分半形與全形
這是一個實際一個項目中遇到的問題。03BHL01001(上海)和03BHL01001(上海)比較的結果是一樣的。導致引起的重復的主鍵問題。 03BHL01001(上海)和03BHL01001(上海)差別,就在於前者的括弧是全形的括弧字元,後者是半形的括弧字元。全形的括弧字元和半形的括弧字元的ascii碼顯然是不一樣的。全形的( ASCII碼是0xA3A8 ,而半形的( 是0x28。那麼為什麼SQL Server會認為是一樣的呢?問題其實就出在資料庫的排序規則上,讓我們在仔細研讀一下SQL Server的文檔。SQL Server的排序規則由這樣幾部分組成,代碼頁、區分大小寫、區分重音、區分寬度。最後一個在SQL Server的聯機幫助中沒有進一步提及,其實本篇遇到的問題就是由於這個原因造成的。區分寬度:指定 SQL Server 區分相同字元的單位元組表示法(半形)和雙位元組表示法(全形)。如果沒有選擇,則 SQL Server 將認為相同字元的單位元組表示法和雙位元組表示法等效。 預設,安裝SQL Server中文版的時候,SQL Server幫你選擇的排序規則是Chinese_PRC_CI_AS(Chinese-PRC, case-insensitive, accent-sensitive, kanatype-insensitive, width-insensitive),是中文,不區分大小寫、區分重音、不區分假名、不區分寬度。因此,自然就認同03BHL01001(上海)=03BHL01001(上海)。bitsCN_com所以,正確的選擇應該是,後綴為WS的中文排序規則。本例中我們應該選擇Chinese_PRC_CI_AS_WS。 SELECT *FROM ::fn_helpcollations()可以查詢所有排序規則的信息。
⑦ SqlServer 替換字元,比如:12345(789),替換成:789,其中括弧有可能是全形(),也有可能是半形()
declare @b int
set @a = '123'
set @b = 123
cast(@a as int)--就是把@a轉換為int類型的
cast(@b as varchar(20))--就是把@b轉換為varchar類型的
declare @a varchar(20)
set @a = '12345(789)'
print left(@a, CHARINDEX ('(',@a,1)-1 )
--輸出12345
⑧ sql裡面的空格區分全形和半形么
有區分的,有時切換到全形輸入時,字體間的間距會明顯變大,但不影響運行,只是不美觀而已。
⑨ SQL server中,要把一列中的所有全形符號變成半形的,要怎麼弄
update [表名] set 欄位名='要改變成的符號' where 欄位名='要改變的全形符號'
直接執行這語句就行
⑩ 關於sql server半形全形轉換的問題
幫頂,重裝系統試試。