SELECT CHARINDEX(N';', '全角分号;', 1)
执行的结果是5,我希望这个函数能区分全半角,返回0要怎么做呢?

解决方案 »

  1.   


    能否详细说明一下呢?不会要修改SqlServer的配置吧?
      

  2.   

    -- select * from ::fn_helpcollations() where name like 'Chinese_PRC_%WS%' order by name
    SELECT CHARINDEX(N';', '全角分号;', 1) --5
    SELECT CHARINDEX(N';', '全角分号;' collate Chinese_PRC_CI_AS_KS_WS, 1) --0
      

  3.   

    _BIN    二进制排序
    _CI(CS) 是否区分大小写,CI 不区分,CS 区分
    _AI(AS) 是否区分重音,AI 不区分,AS 区分
    _KI(KS) 是否区分假名类型,KI 不区分,KS 区分
    _WI(WS) 是否区分宽度,WI 不区分,WS 区分
      

  4.   

    COLLATE { <collation_name> | database_default }
    <collation_name> :: = 
         { Windows_collation_name } | { SQL_collation_name collation_name
        应用于表达式、列定义或数据库定义的排序规则的名称。collation_name 可以只是指定的 Windows_collation_name 或 SQL_collation_name 。collation_name 必须是文字值。    collation_name 不能用变量或表达式表示。
        Windows_collation_name 是用于 Windows 排序规则 名称的排序规则名称。
        SQL_collation_name 是用于 SQL 排序规则 名称的排序规则名称。_BIN(1)
    二进制排序。_BIN2(1)
    二进制-码位排序顺序(SQL Server 2005 的新增功能)。_CI_AI
    不区分大小写、不区分重音、不区分假名、不区分全半角。_CI_AI_KS
    不区分大小写、不区分重音、区分假名、不区分全半角_CI_AI_KS_WS
    不区分大小写、不区分重音、区分假名、区分全半角_CI_AI_WS
    不区分大小写、不区分重音、不区分假名、区分全半角_CI_AS
    不区分大小写、区分重音、不区分假名、不区分全半角_CI_AS_KS
    不区分大小写、区分重音、区分假名、不区分全半角_CI_AS_KS_WS
    不区分大小写、区分重音、区分假名、区分全半角_CI_AS_WS
    不区分大小写、区分重音、不区分假名、区分全半角_CS_AI
    区分大小写、不区分重音、不区分假名、不区分全半角_CS_AI_KS
    区分大小写、不区分重音、区分假名、不区分全半角_CS_AI_KS_WS
    区分大小写、不区分重音、区分假名、区分全半角_CS_AI_WS
    区分大小写、不区分重音、不区分假名、区分全半角_CS_AS
    区分大小写、区分重音、不区分假名、不区分全半角_CS_AS_KS
    区分大小写、区分重音、区分假名、不区分全半角_CS_AS_KS_WS
    区分大小写、区分重音、区分假名、区分全半角_CS_AS_WS
    区分大小写、区分重音、不区分假名、区分全半角(1)如果选择 BIN 或二进制-码位,则区分大小写、区分重音、区分假名和区分全半角选项均不可用。
      

  5.   

    详见sql server 排序规则