是因为引号是一个特殊符号,用来括住字符串的,如果你在字符串中也有引号,比如:'i'am'那么为了让sql server理解i和am中间的引号,只是一个普通字符,而不是一个特殊字符,必须要写2次引号:'i''am'其实就是起到转意的作用

解决方案 »

  1.   

    '''+@CardID+''''第一个单引号是和前面的动态脚本一起的,后面的两个可以转化成一个单引号,就是这个样子
    where ziduan='值
    后面的四个单引号很有意思,中间两个转换成一个单引号,这一个单引号是一个字符,所有要用引号括起来,
    这就用掉了后面四个引号中第一个和第四个。组合起来就是这个样子的:
    where ziduan='值’
      

  2.   

    ===================================================
    这个我知道哈,我就是问 为什么出现三个单引号就是你要表示一个单引号,那么就需要写成这样:''' 显示出来就是'
    =========================
    那你觉得三楼说得对吗,亲?按照三楼说得,应该是'''+@CardID+''''。前三个中第三个才与前面的匹配。第一个第一个转化为’。形成where ziduan='值。根据字符串的+连接嘛。
      

  3.   

    ====================
    按照你这么说。那么'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''。就解释不通了????
      

  4.   

    ====================
    按照你这么说。那么'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''。就解释不通了????是,就是这样的:
    declare @sql nvarchar(100)
    declare @receiveBillPerson varchar(10)set @sql = ''
    set @receiveBillPerson='abc'set @sql =  @sql +
    'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''select @sql
    /*
    WHERE ReceiveBillPerson LIKE '%abc%'
    */
      

  5.   

    ===================================================
    这个我知道哈,我就是问 为什么出现三个单引号就是你要表示一个单引号,那么就需要写成这样:''' 显示出来就是'
    =========================
    那你觉得三楼说得对吗,亲?按照三楼说得,应该是'''+@CardID+''''。前三个中第三个才与前面的匹配。第一个第一个转化为’。形成where ziduan='值。根据字符串的+连接嘛。呵呵,写错了,应该是:就是你要表示一个单引号,那么就需要写成这样:'''' 显示出来就是'
      

  6.   

    ====================
    按照你这么说。那么'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''。就解释不通了????是,就是这样的:
    declare @sql nvarchar(100)
    declare @receiveBillPerson varchar(10)set @sql = ''
    set @receiveBillPerson='abc'set @sql =  @sql +
    'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''select @sql
    /*
    WHERE ReceiveBillPerson LIKE '%abc%'
    */我知道结果会是那样,我就是想知道为什么会变成那样,掌握了以后才灵活运用单引号
      

  7.   

    ====================
    按照你这么说。那么'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''。就解释不通了????是,就是这样的:
    declare @sql nvarchar(100)
    declare @receiveBillPerson varchar(10)set @sql = ''
    set @receiveBillPerson='abc'set @sql =  @sql +
    'WHERE ReceiveBillPerson LIKE ''%' + @receiveBillPerson + '%'''select @sql
    /*
    WHERE ReceiveBillPerson LIKE '%abc%'
    */我知道结果会是那样,我就是想知道为什么会变成那样,掌握了以后才灵活运用单引号上面说了哈,因为引号是一个特殊符号,用来括住字符串的,如果你在字符串内部也有引号,那么必须要写两次,第一个单引号用来表示后面的单引号是个普通的字符。比如,在c语言中一个字符:定义一个变量,然后赋值 www char[]='a'b' 那么必须要写成:www char[]='a\'b'之所以要写一个\ 就是用来转意后面的' 表示' 是一个普通的字符,而不是一个括住 字符串的 分隔符
      

  8.   

    单引号括住表示字符串,然而,当字符串中含有单引号时做么办,sql server用2个重复的单引号表示字符串中单个的单引号,以保证数据不会混乱。
    select '''abc''' 查询出来的结果是
    -----------
    'abc'