首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SQL Server 2008中的长字符串连接

SQL Server 2008中的长字符串连接
EN

Stack Overflow用户
提问于 2015-01-08 02:42:34
回答 3查看 706关注 0票数 0

我是在与SQL Server2008数据库的ASP.net应用程序工作。我知道在.net中,当我们需要进行任何长字符串连接时,我们应该使用StringBuilder,而不是使用"+“或"&”运算符。例如。

代码语言:javascript
复制
string myString = "SELECT column1,"
 + " column2,"
 + " column3,"
 + " column4,"
 + " column5,"
 + " column6,"
 + " FROM table1 t1"
 + " JOIN table2 t2"
 + " ON t1.column1 = t2.column1";

我想知道这是否也适用于SQL Server,我们也应该避免这种类型的字符串连接?如果是,那么在SQL Server中连接长字符串的正确方法是什么。

EN

回答 3

Stack Overflow用户

发布于 2015-01-08 02:47:34

您可以使用内置的T-SQL Concat method,它等同于使用字符串构建器构建字符串。

根据文档,这是仅在SQL Server2012或2014中可用的,因此在您的情况下,您需要坚持使用+运算符。

票数 0
EN

Stack Overflow用户

发布于 2015-01-08 02:49:34

我想不出任何理由不使用+

代码语言:javascript
复制
DECLARE  @myString VARCHAR(4000) = 'SELECT column1,'
 + ' column2,'
 + ' column3,'
 + ' column4,'
 + ' column5,'
 + ' column6,'
 + ' FROM table1 t1'
 + ' JOIN table2 t2'
 + ' ON t1.column1 = t2.column1';
票数 0
EN

Stack Overflow用户

发布于 2015-01-08 02:48:57

在我有限的经验中,我发现几乎每次我认为我应该在SQL查询中连接数据时,我后来发现我应该按原样查询它,然后在C#中处理字符串操作。每次连接数据库中的两个结果时,都会增加遇到边缘情况的机会。

例如,考虑一个地址。我的数据库存储有以下列的地址:

  • Addr1
  • Addr2
  • City
  • StateCd
  • ZipCd
  • ZipSuf
  • CntryCd

起初,将Addr1和Addr2放在单独的行上似乎是合乎逻辑的,然后是City、StateCd、ZipCd-ZipSuf和CtryCd。实际上,如果Addr2或ZipSuf为null,这将导致在SQL中进行大量的条件格式化。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27826398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档