select 'Hello, World!'

The single biggest challenge to learning SQL programming is unlearning procedural programming (Joe Celko)

19.01.2017
Olaf
Добрый день, коллеги!

Подготовлена третья часть головоломок. Предыдущие выпуски можно посмотреть здесь:
[SQL Server] Головоломки (Часть 1)
[SQL Server] Головоломки (Часть 2)

1. Использование переменных в инструкции UPDATE
Дано: Таблица с двумя колонками и одной записью.
create table #Table1
(
    A int,
    B int
)

insert into #Table1(A, B)
select 10, 10

Вопрос: Что содержится в таблице (колонках A и B) и чему равно значение переменных (@A и @B) после выполнения запроса на обновление ?
declare @A int = 0
declare @B int = 0

update #Table1
set @A = A = A + 5
    ,B = @B + 5
    ,@B = B

select @A, t.A, @B, T.B
from #Table1 t

Выберите один вариант ответа:
...
11.03.2016
Olaf
Привет, Всем!

На днях вышел в свет SQL Server 2016 Release Candidate (RC0). В качестве заявленных дополнений фигурирует встроенная функция STRING_SPLIT для деления строки на части с возможностью указать разделитель.

Syntax
STRING_SPLIT ( string , separator )

Arguments
string — Is an expression of any character type (i.e. nvarchar, varchar, nchar or char).
separator — Is a single character expression of any character type (e.g. nvarchar(1), varchar(1), nchar(1) or char(1)) that is used as separator for concatenated strings.

Return Types
Returns a single-column table with fragments. The name of the column is value. Returns nvarchar if any of the input arguments are either nvarchar or nchar. Otherwise returns varchar. The length of the return type is the same as the length of the string argument.


Казалось бы...
03.11.2015
Olaf
Добрый день, коллеги!

Продолжая начатую тему [SQL Server] Головоломки (Часть 1), решил опубликовать еще пять вопросов...

1. order by (select null)
Дано: Запрос вида
select * from dbo.Table1 order by (select null)

Вопрос: Можно ли с какой-то долей уверенности сказать будут ли отсортированы данные и в каком порядке?
a) Да
б) Нет
...
01.07.2015
Olaf
Добрый день, коллеги!

В ходе работы иногда возникают интересные аспекты использования MS SQL Server. В свое время откладывал их в виде запросов, заметок и всего прочего с надеждой, что доберутся руки, чтобы оформить это в виде головоломок (задач) с ответами и пояснениями. И вот первые пять вопросов готовы. Возможно, кому-то покажется это интересным или будут предложены свои головоломки. Вопросы и ответы составлены мной, поэтому ошибки и заблуждения не исключены. Обсуждение приветствуется

1. select *
Дано: Запрос вида
select * 
from dbo.Table1 
where exists(select *)

Вопрос: Что произойдет при выполнении запроса?
a) Успешно выполнится
б) Не выполнится, т.к. возникнет ошибка
Выберите один вариант ответа
...