【发布时间】:2014-02-07 20:20:22
【问题描述】:
我想知道是否有直接在 SQL 中基于字段值连接字符串的直接方法。我知道在应用程序中这样做会更好,但在这种情况下,我只能使用 SQL。例如下表:
Labels | Qty | LabelQty | OutputString
-------+-----+----------+--------------
1 | 30 | 30 | NULL
2 | 60 | 30 | NULL
2 | 120 | 60 | NULL
我想像这样结束 OutputString:
Labels | Qty | LabelQty | OutputString
-------+-----+----------+--------------
1 | 30 | 30 | 30|
2 | 60 | 30 | 30|30|
2 | 120 | 60 | 60|60|
我知道这在 C# 或 VB 中很容易做到,但我很难考虑如何用直接的 SQL 来完成。我是否需要使用游标并一次执行每一行?不幸的是,我不能像在 Ruby 中那样只使用字符串乘法器,例如:
SELECT (CONVERT(VARCHAR(10), LabelQty) + '|') * Labels
任何指针都非常感谢。
【问题讨论】:
-
输出字符串的输出背后的逻辑是什么?
-
你必须告诉我们你是如何得到输出字符串的内容的?您是否希望 LabelQty 字段重复次数为 Labels 包含的
|之间的次数? -
重复 LabelQty 的标签次数?
-
正确,如底部
SELECT所示。重复LabelQty字段Labels的次数。 -
dub,底部的选择并不表示因为
*不是字符串的有效运算符,这将导致语法错误。最好使用英语来满足这个要求。
标签: c# sql sql-server vb.net