如何在不创建存储过程的情况下在oracle中实现以下功能?
数据集:
question_id element_id
1 7
1 8
2 9
3 10
3 11
3 12
Run Code Online (Sandbox Code Playgroud)
期望的结果:
question_id element_id
1 7,8
2 9
3 10,11,12
Run Code Online (Sandbox Code Playgroud) 我正在寻找从SQL Server 2005表创建一个以逗号分隔的值列表,就像在JanetOhara的问题中一样.我正在使用类似于techdo对问题的回答中提出的查询.
一切正常,除了值列表正在进行XML编码.应该是什么:
Sports & Recreation,x >= y
Run Code Online (Sandbox Code Playgroud)
而是返回为:
Sports & Recreation,x <= y
Run Code Online (Sandbox Code Playgroud)
有没有办法在SQL Server中使用"FOR XML"时禁用XML字符编码?
我有一个包含以下代码的sql函数:
DECLARE @CodeNameString varchar(100)
SELECT CodeName FROM AccountCodes ORDER BY Sort
Run Code Online (Sandbox Code Playgroud)
我需要将select查询中的所有结果连接到CodeNameString中.
显然,C#代码中的FOREACH循环会这样做,但我如何在SQL中执行此操作?
我有以下代码,它将为我的结果创建一个逗号分隔列表:
DECLARE @listStr VARCHAR(MAX)
SELECT @listStr = COALESCE(@listStr+', ' ,'') + INSTITUTIONNAME
FROM EDUCATION
WHERE STUDENTNUMBER= '111'
SELECT @listStr
Run Code Online (Sandbox Code Playgroud)
问题在于它创建了一个大量逗号分隔的行.我需要它每行返回一个逗号分隔的列表.
所以,如果Simon
已经成为2个机构的一部分,那么我希望:
"INSTITUTION1, INSTITUTION2"
Run Code Online (Sandbox Code Playgroud)
由于我没有提供where子句,我希望我的结果对于数据库中的每一行都显示如下.
我已经看到一些hacks试图让bcp实用程序导出列名和数据.如果我所做的只是将表转储到文本文件中,那么使用bcp添加列标题的最简单的方法是什么?
这是我目前使用的bcp命令:
bcp myschema.dbo.myTableout myTable.csv /SmyServer01 /c /t, -T
Run Code Online (Sandbox Code Playgroud) 我目前有一个返回许多字段的SQL查询.我需要一个字段实际上是一个子查询子.
问题详细:
如果我有一个包含两列的表X,ModuleID并说ModuleValue,我如何编写SQL查询来获取结果并将其连接到一个字段:
EG结果返回
(SELECT ModuleValue FROM Table_X WHERE ModuleID=@ModuleID)
Run Code Online (Sandbox Code Playgroud)
价值1
价值2
价值3
...
我需要返回结果(作为单行,与上面不同):
值1,值2,值3
是否有一个简单的连接方法可以是用户?
编辑:
DB是MS TSQL(2005)
sql sql-server sql-server-2005 concatenation sql-server-group-concat
我有一个查询,它返回一个状态的计数,需要一些非常复杂的工作来计算.用户想深入查看该列表,我认为最简单的方法是使用GROUP_CONCAT获取ID.
不幸的是,GROUP_CONCAT的结果被截断为1024(?!)个字符.
是否可以获得超过1024个字符,或者我是否以错误的方式进行此操作?
我的T-SQL查询生成以下结果集
ID Date
756 2011-08-29
756 2011-08-31
756 2011-09-01
756 2011-09-02
Run Code Online (Sandbox Code Playgroud)
我怎么能像这样转换
ID Date
756 2011-08-29, 2011-08-31, 2011-09-01, 2011-09-02
Run Code Online (Sandbox Code Playgroud)
任何建议将不胜感激.
我今天在SQL Server(2008R2和2012)中遇到了一个非常奇怪的问题.我正在尝试使用串联和select
语句来构建字符串.
我找到了解决方法,但我真的很想了解这里发生了什么以及为什么它没有给我预期的结果.有人可以向我解释一下吗?
http://sqlfiddle.com/#!6/7438a/1
根据要求,这里的代码也是:
-- base table
create table bla (
[id] int identity(1,1) primary key,
[priority] int,
[msg] nvarchar(max),
[autofix] bit
)
-- table without primary key on id column
create table bla2 (
[id] int identity(1,1),
[priority] int,
[msg] nvarchar(max),
[autofix] bit
)
-- table with nvarchar(1000) instead of max
create table bla3 (
[id] int identity(1,1) primary key,
[priority] int,
[msg] nvarchar(1000),
[autofix] bit
)
-- fill the three tables with the same values …
Run Code Online (Sandbox Code Playgroud) sql-server ×7
sql ×4
t-sql ×3
bcp ×1
csv ×1
encoding ×1
for-xml-path ×1
header ×1
mysql ×1
nvarchar ×1
oracle ×1
schema ×1
sql-function ×1
xml ×1