问题1: 我正在学习SQL Server和Oracle连接(内连接,外连接......) 和case语句语法。虽然我可以谷歌搜索信息,但会 喜欢问一些完全解释的网站,链接和材料 加入和案件陈述。
问题2: 我正在运行一个简单的语句,其输出结果如下:
select '''' + name + '''' + ',' as Emp_Names
from dbo.employee
Emp_Names
'Jason',
'Robert',
'Celia',
'Linda',
'David',
'James',
'Alison',
'Chris',
'Mary',
SQL中是否有一种方法可以显示我想要的输出:
Emp_Names
'Jason', 'Robert','Celia','Linda','David','James','Alison','Chris','Mary',
我可以一起按一下删除和结束,但只有少数记录,但不是一百条记录......
答案 0 :(得分:2)
答案 1 :(得分:1)
SQL Server和Oracle连接(内连接,外连接......)
...案例陈述语法。
CASE表达式是ANSI,并且在Oracle 9i+和SQL Server 2000+中受支持 - 两者都是相同的。 Oracle的PLSQL也有一个CASE语句,两者之间的区别在于PLSQL版本以END CASE
结尾,而不是END
。
答案 2 :(得分:0)
答案 3 :(得分:0)
在SQL Server 2005或更高版本中,如果您想要一列中的所有名称,则可以使用stuff函数。
SELECT STUFF(( SELECT DISTINCT TOP 100 PERCENT
',' + Name
FROM employee
ORDER BY ',' +Name
FOR XML PATH('')
), 1, 1, '')
或
select STUFF(( SELECT DISTINCT TOP 100 PERCENT
''',''' + Name
FROM employee
ORDER BY ''',''' + Name
FOR XML PATH('')
), 1, 2, '') + ''''
否则,您可以使用pivot命令将每个名称作为自己的列。使用pivot命令的唯一方法是你需要事先知道名字,否则你会将它与stuff函数结合使用。