sql查询字符串拼接

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql查询字符串拼接相关的知识,希望对你有一定的参考价值。

如图中的拼接方法 怎么拼接才正确呢?

参考技术A 拼串的时候用char(39) 代替单引号,char(37)代替%

SET @sql = 'SELECT * FROM authors WHERE address LIKE '+char(39)+char(37)+@str+char(37)+char(39)本回答被提问者采纳
参考技术B 不要用双引号 只用单引号

SET @sql = 'SELECT * FROM authors WHERE address LIKE ''%'+@str+'%'''
参考技术C 定义\为转义字符
SET @sql = 'SELECT * FROM authors WHERE address LIKE '\'%\'+@str+\'%\'' ESCAPE '\'
参考技术D 带参数的不能这么调用。参考MSDN的sp_executesql
sp_executesql [ @stmt = ] stmt

[
, [@params=] N'@parameter_name data_type [ OUT | OUTPUT ][,...n]'
, [ @param1 = ] 'value1' [ ,...n ]
]

例:
DECLARE @IntVariable int;
DECLARE @SQLString nvarchar(500);
DECLARE @ParmDefinition nvarchar(500);

/* Build the SQL string one time.*/
SET @SQLString =
N'SELECT EmployeeID, NationalIDNumber, Title, ManagerID
FROM AdventureWorks.HumanResources.Employee
WHERE ManagerID = @ManagerID';
SET @ParmDefinition = N'@ManagerID tinyint';
/* Execute the string with the first parameter value. */
SET @IntVariable = 197;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@ManagerID = @IntVariable;
/* Execute the same string with the second parameter value. */
SET @IntVariable = 109;
EXECUTE sp_executesql @SQLString, @ParmDefinition,
@ManagerID = @IntVariable;

Excel 2013拼接Sql字符串

在做开发的过程中,经常需要根据Excel中的数据去数据库查询,少量数据还可以去复制粘贴,大量数据时就需要将Excel中的数据拼接成自己需要的Sql,以提升工作效率。

场景1:将某一列拼接成Sql中的In条件

假设现在有如下的Excel数据,我需要从数据库中查询出这些门店的数据

技术分享图片

操作方法如下图所示:

技术分享图片

将生成的一列数据复制到Visual Studito Code中,进行替换即可

技术分享图片

 场景2:将某一列拼接成C#中的List

假设现在有如下的Excel数据,我需要将这些值写在C#中的List<string>中

技术分享图片

操作方法如下图所示:

技术分享图片

将生成的一列数据复制到Visual Studito Code中,进行替换即可

技术分享图片

场景3:拼接Sql语句

假如有如下的Sql语句,现需要将Where条件中的StoreCode的值替换为Excel中的值

SELECT  st.StoreCode ,
        st.StoreName ,
        s.SellerName ,
        so.SellerOrgName
FROM    dbo.Fct_Store AS st
        INNER JOIN dbo.Fct_Seller AS s ON s.Disabled = 0
                                          AND st.SellerCode = s.SellerCode
        INNER JOIN dbo.Config_SellerOrg AS so ON so.Disabled = 0
                                                 AND s.SellerOrgCode = so.SellerOrgCode
WHERE   st.Disabled = 0
        AND st.StoreCode = 10000196;

 按照场景1和2中的方式,将Sql语句复制到Excel中,提示如下信息:

技术分享图片

技术分享图片

此时,就需要用到Excel中的CONCATENATE()函数,如下所示:

技术分享图片

以上是关于sql查询字符串拼接的主要内容,如果未能解决你的问题,请参考以下文章

sql查询语句怎么拼接字符串

动态执行SQL语句,拼接字符串,select中带有一个变量

将oracle 查询结果列拼接为字符串

sql语句的拼接问题,前端传递过来的字符串我们怎么拼接?

将oracle 查询结果列拼接为字符串

sql拼接两个字段的值空格在哪