SQL Server и Oracle объединяют учебники - PullRequest
0 голосов
/ 27 октября 2010

Вопрос 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',

я могу нажать Delete и End вместе, чтобы попасть туда, но только для нескольких записей, но не для ста записей ...

Ответы [ 4 ]

2 голосов
/ 27 октября 2010
1 голос
/ 27 октября 2010

Соединения SQL Server и Oracle (внутренние объединения, внешние объединения ...)

Хорошая ссылка для этого .

... синтаксис операторов case.

Выражение CASE является ANSI и поддерживается в Oracle 9i + и SQL Server 2000+ - оно одинаково для обоих.Oracle PLSQL также имеет оператор CASE, и разница между ними заключается в том, что версия PLSQL заканчивается на END CASE, а не END.

0 голосов
/ 27 октября 2010

В 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.

0 голосов
/ 27 октября 2010

Соединения - это более общий SQL. У них нет разных команд, специфичных для SQL-сервера или Oracle.

У Microsoft есть T-SQL, а у Oracle PL / SQL.

T-SQL - используйте эту ссылку

...