技术交流群:233513714 第一种方法: SELECT * FROM pay_inf_config a WHERE a.id IN ( SELECT REPLACE ( concat('''', s.pay_id, ''''), ',', ''',''' ) FROM sys_app s WHERE s.app_id ) 第二种方法: SELECT * FROM pay_inf_config a WHERE a.id IN ( SELECT '''' + REPLACE ( group_co
--当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔--当 SET QUOTED_IDENTIFIER 为 OFF(默认值)时,表达式中的文字字符串可以由单引号或双引号分隔 SET QUOTED_IDENTIFIER ON --SELECT "1" --"为标识定界符,1理解为标识符,等价于--SELECT [1] --即1为列名之类的数据库对象/*消息 207,级别 16,状态 1,第 2 行列名 '1' 无效.
转自:http://www.maomao365.com/?p=10739 摘要: 下文讲述在sqlserver 对逗号分隔的字符串转换为数据表的另类方法实现,如下所示: 实验环境:sql server 2008 R2 实现思路: 将组合字符串中的逗号替换为“ 'as n union all select ' ”,然后将替换后的字符串加上select 和 前后加上单引号 是其成为可执行sql脚本, 最后运行替换后的字符串,就可以得到一张数据表,如下所示: ) set @maomao365 ='s
核心在于拼接SQL字符串中遇到中文双引号问题: 可以使用系统函数 替换掉set @pageStr = replace(@queryStr,'"','''') 不过更推荐 使用两个单引号转译 USE [TEMP] GO /****** Object: StoredProcedure [dbo].[P_GetAlterAsset] SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER proc [dbo].[P_GetAlterAs
SET QUOTED_IDENTIFIER ON SQL SERVER的联机丛书的解释: “当 SET QUOTED_IDENTIFIER 为 ON 时,标识符可以由双引号分隔,而文字必须由单引号分隔.当 SET QUOTED_IDENTIFIER 为 OFF 时,标识符不可加引号,且必须遵守所有 Transact-SQL 标识符规则.” 先说说什么是标识符,举个例子,如果创建了一个叫做USER的数据库表,则直接用SQL语句“SELECT * FROM USER”做查询时会报错:“在关键字 'U