sql语句不包含多个汉字词组

sql语句中不再包含中文字符:SELECT*FROMtWHEREstrNOTLIKE'%[吖-seat]%'SELECT*FROMtWHEREpatindex('%[吖-seat]%',str)=0

sql里数据类型nchar(10)为什么能存10个汉字,char(10)只能存5个汉字?

这取决于您的字符遵循的编码规则。
1.如果是单字节编码。
例如ASCII,一个字符(具体的英文字符)是用一个字节来编码的,按照ASCII的扩展编码(编码规则我忘记了,不过可以统称为ANSI)。
一个汉字由两个字符表示;因此,汉字就是按照这个编码规则存储的。
需要两个字节(两个字符),char(10)指的是字符数;不是多少字节(虽然这种编码下结果是一样的,因为一个字符对应一个字节,但双字节编码则不然);所以char(10)可以存储10个字符,由于两个字符代表一个汉字,所以最多可以存储5个汉字。
2.如果是双字节编码。
这里字符(不仅是英文字符,还包括汉字、汉字等字符)被编码为双字节,nchar()存储的是UNICODE字符。
使用双字节代码。
规则是一个字符等于两个字节;但nchar(10)其实并不需要考虑字节问题。
根据这一规则,许多汉字与英文字符具有相同的属性。
所以nchar(10)可以存储10个汉字。
总结:造成如此复杂的主要原因是单字节虽然编码不等同于英文字母等普通字符,用两个常用字来表示汉字;双字节编码是指所有字符都相等。
来信;这意味着包括汉字在内的所有字符。