Определение (псевдонима) имени поля - PullRequest
0 голосов
/ 05 октября 2018

Я просматривал некоторый код в нашей старой классической ASP-системе, которая создает свой собственный SQL в хранимой процедуре и затем выполняет его {дрожь} .

Несколько изSELECT Ионные линии содержат присваивание, подобное:

SELECT 
    my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END
    ...

Есть ли какая-либо разница (или что-то, что мне нужно знать) между этим и использованием стандартного AS псевдонима? ...

SELECT 
    CASE WHEN value = whatever THEN 1 ELSE 0 END AS my_field
    ...

Ответы [ 2 ]

0 голосов
/ 05 октября 2018

2 примера, которые вы привели, идентичны.Однако, когда вы просматриваете старый код, вы также можете найти вариант со знаком @ перед my_field, например:

SELECT
    @my_field = CASE WHEN value = whatever THEN 1 ELSE 0 END

В этом случае varable с именем @my_field присваивается значение,но ничего не выбрано.Это вы не можете переписать в другой синтаксис, используя AS @myfield.

0 голосов
/ 05 октября 2018

Нет, следующий код является синонимом:

SELECT one = 1;
SELECT 1 one;
SELECT 1 AS one;
SELECT 'one' = 1; --this is deprecated, don't use it.

То, что вы используете (кроме последнего), обычно ниже предпочтения.Лично я пользуюсь AS.Одна из причин в том, что я могу легко указать запросы, которые возвращают наборы данных, и те, которые присваивают значения переменным.

...