【发布时间】:2013-05-08 18:18:10
【问题描述】:
我有一个这样的查询:
SELECT '35111212', '11245452', '42215512'...... and more values.
这会导致:
(No column name) (No column name) (No column name)
-------- -------- --------
35111212 11245452 42215512
我需要将其转换为:
(No column name)
--------
35111212
11245452
42215512
不使用“联合”是否可行?我在选择中有大量的值。
【问题讨论】:
-
值来自哪里,它们只是字符串值?他们是从一张桌子上来的吗?能发一下表结构吗?
-
只是字符串,很多!这是我无法使用联合的问题
-
但是你从哪里得到这个字符串列表呢?
-
我从必须在 Delphi 应用程序中处理的 XML 文件中获取列表,因此在 delphi 中我构建了一个这样的 commandText。我无法在这里解释所有内容,但我的想法是在不使用“WHERE IN”和“UNION”的情况下加入一个包含此列表的表,导致列表太大
-
您可以将整个 XML blob 放入一个临时表中,然后使用 xquery/xpath 提取您需要的值。否则,如果它们真的只是一堆字符串值,那么TSQL中的选项并不多。
标签: sql-server-2008 tsql sql-server-2005 unpivot