sql的like語法里面 []有特殊含義,類似正則表達式的范圍,比如[0-9]代表數(shù)字
創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目網(wǎng)站建設(shè)、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元宿州做網(wǎng)站,已為上家服務,為宿州各地企業(yè)和個人服務,聯(lián)系電話:13518219792
解決方法一是比如[可以用[[]查到,另一方法是用轉(zhuǎn)義
SELECT * from sampleTable where sampleData like '\[%' ESCAPE '\'
參考資料?網(wǎng)頁鏈接
sql:
CREATE FUNCTION f_Convert(
@str NVARCHAR(4000), --要轉(zhuǎn)換的字符串
@flag bit --轉(zhuǎn)換標志,0轉(zhuǎn)換成半角,1轉(zhuǎn)換成全角
)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)
當數(shù)據(jù)量比較大時,一條一條改不太現(xiàn)實,可以用上面的函數(shù)批量更改
如果能夠確認兩個表的property字段類型是一樣的,那么就是因為字符的全角半角或空格問題造成的。兩個表的字符比較全角半角問題是不易解決的??崭駟栴}可以用以下語句查詢:SELECT * FROM tab1 WHERE LTrim(RTrim(property)) in (SELECT LTrim(Rtrim(property)) FROM tab2)
declare @b int
set @a = '123'
set @b = 123
cast(@a as int)--就是把@a轉(zhuǎn)換為int類型的
cast(@b as varchar(20))--就是把@b轉(zhuǎn)換為varchar類型的
declare @a varchar(20)
set @a = '12345(789)'
print left(@a, CHARINDEX ('(',@a,1)-1 )
--輸出12345
關(guān)于sql中查詢的時候是否區(qū)分大小寫的問題
CI指定不區(qū)分大小寫,CS指定區(qū)分大小寫
AI指定不區(qū)分重音,AS指定區(qū)分重音
Pref
指定大寫字母優(yōu)先
Omitted指定不區(qū)分全半角,WS指定區(qū)分全半角
如果綁定到架構(gòu)的對象依賴于數(shù)據(jù)庫排序規(guī)則,則無法更改數(shù)據(jù)庫排序規(guī)則。請刪除數(shù)據(jù)庫排序規(guī)則的依賴項,然后重試操作
alter
database
MySchool
COLLATE
Chinese_PRC_CS_AS
--可以針對某個表使用區(qū)分大小寫的查詢
Select
*
From
[Users]
Where
uLoginName='ADMIN'
collate
Chinese_PRC_CS_AI_WS--在數(shù)據(jù)庫屬性--選項中可以設(shè)置數(shù)據(jù)庫排序規(guī)則--查詢當前可用的排序規(guī)則