【发布时间】:2015-02-07 23:00:16
【问题描述】:
我有两张桌子。一个有订单号和订单详情:
CREATE TABLE #Order ( OrderID int )
第二个包含关于订单的cmets:
CREATE TABLE #OrderComments ( OrderID int
Comment VarChar(500) )
Order ID Comments
~~~~~~~~ ~~~~~~~~
1 Loved this item!
1 Could use some work
1 I've had better
2 Try the veal
我的任务是确定输出的最大长度,然后返回如下输出:
Order ID Comments Length
~~~~~~~~ ~~~~~~~~ ~~~~~~
1 Loved this item! | Could use some work | I've had better 56
2 Try the veal 12
所以,在这个例子中,如果这是所有数据,我正在寻找“56”)。
主要目的是确定所有 cmets 附加在一起时的最大长度,包括 | 分隔符。这将在构建此输出将放入的表时使用,以确定我们是否可以在the 8,060 size limit for a row 中获取数据,或者我们是否需要使用 varchar(max) 或 text 来保存数据。
我已经尝试了几个可以生成此输出到变量的子查询,但我还没有找到可以生成上述输出的子查询。如果我能得到那个,那么我就可以通过SELECT TOP 1 ... ORDER BY 3 DESC 得到我正在寻找的号码。
【问题讨论】:
标签: sql-server string tsql concatenation string-concatenation