Погружение в базы данных Oracle

Данная книга является руководством для начинающих специалистов в области анализа и обработки данных. В книге рассматривается язык SQL и его процедурное расширение PL/SQL от компании Oracle.

Купить книгу

SQL без слёз

Цель книги заключается в том, чтобы научить любого человека работать с реляционными базами данных и получать из них необходимую информацию посредством выполнения SQL-запросов.

Скачать книгу

 ›  ›  ›  › Оператор AS. Псевдонимы в SQL

Оператор AS. Псевдонимы в SQL

Псевдонимы используется для предоставления столбцов или таблиц с именем отличным от оригинала, то есть, вы можете переименовать столбец при выборке в любое удобное для вас имя.

Для создания псевдонимов используется оператор AS.

Практический пример

В вашей таблице Users есть столбец first_middle_last_name, который содержит в себе полное имя пользователя. У данного столбца очень длинное имя, и есть использовать не очень удобно. Поэтому его можно просто переименовать в более короткое и понятное имя: например, в name_user

SELECT first_middle_last_name AS 'name_user' FROM Users;

Метки: , , .

Записи по теме

Комментарии к записи

  1. Мария:

    Зачем такие сложности в не нужных действиях? это только путает новичка зачем создавать копию таблицы?
    что бы в ней и запутаться?

    Ответить
  2. Роман:

    на основании данных из другой таблицы, при помощи AS создаю новый столбец, но не могу теперь к нему обратиться, чтоб проверить не одинаковые ли данные в этом столбце с другим столбцом(

    Ответить
    • Какую СУБД используете? Пришлите текст вашего запроса в комментарии ниже, посмотрим на него.

      Ответить
      • Роман:

        Весь запрос приводить не буду очень длинный, приведу кусочек:
        COALESCE(
        (
        SELECT TOP 1 ‘+7 (‘ + p.[Phone Code] + ‘) ‘ + LEFT(p.[Phone Number],3) + ‘-‘ + SUBSTRING(p.[Phone Number],4,2) + ‘-‘ + RIGHT(p.[Phone Number],2)
        FROM [trance FC`$Phone] p
        WHERE p.[Employee No_]=e.No_ AND p.[Default]=’1’ AND p.[Phone Number] »
        ),
        e.[Mobile Phone No_]
        ) AS [MobileNo_],
        CASE
        WHEN e.[Mobile Phone No_] = e.[MobileNo_] THEN »
        ELSE e.[Mobile Phone No_]
        END AS [MobilePhoneNo_],
        CASE
        WHEN e.[Mobile Phone No_] = e.[Home Phone No_] OR e.[Home Phone No_] = e.[MobileNo_] THEN »
        ELSE e.[Home Phone No_]
        END AS [HomePhoneNo_],

        $SqlConnection = New-Object System.Data.SqlClient.SqlConnection
        $SqlConnection.ConnectionString = «Server=$SqlServer; Database=$SqlCatalog; Trusted_Connection=True;»
        $SqlCmd = New-Object System.Data.SqlClient.SqlCommand
        $SqlCmd.CommandText = $sql
        $SqlCmd.Connection = $SqlConnection
        $DataAdapter = new-object System.Data.SqlClient.SqlDataAdapter $SqlCmd
        $Dataset = new-object System.Data.Dataset
        write-output $DataAdapter.Fill($Dataset) | Out-Null
        Тут выскакивает ошибка:
        Исключение при вызове «Fill» с «1» аргументами: «Incorrect syntax near the keyword ‘WHEN’.
        Incorrect syntax near ‘,’.»
        строка:1 знак:1
        + write-output $DataAdapter.Fill($Dataset) | Out-Null
        + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
        + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
        + FullyQualifiedErrorId : SqlException

        Ответить
        • Посмотрел бегло запрос, ругается на конструкцию WHEN. И сразу можно выделить ошибку, когда у вас отрабатывает конструкция WHEN, должен выполниться блок THEN, а в этом блоке должно быть указано значение. В вашем случае это символ », и он строчный. Строчные символы необходимо заключать в кавычки.
          CASE
          WHEN e.[Mobile Phone No_] = e.[MobileNo_] THEN »
          ELSE e.[Mobile Phone No_]
          END AS [MobilePhoneNo_],

          Ответить
        • Роман:

          Прошу прощения, такая ошибка:
          Исключение при вызове «Fill» с «1» аргументами: «Invalid column name ‘MobileNo_’.
          Invalid column name ‘MobileNo_’.»
          строка:1 знак:1
          + write-output $DataAdapter.Fill($Dataset) | Out-Null
          + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
          + CategoryInfo : NotSpecified: (:) [], MethodInvocationException
          + FullyQualifiedErrorId : SqlException

          Ответить
          • Эта ошибка указывает на некорректное имя столбца в таблице. Проверьте правильность имени столбца, если имя правильное, необходимо посмотреть полный запрос , как и когда определяется псевдоним для таблицы.

            Ответить
            • Роман:

              Псевдоним определяется так:
              COALESCE(
              (
              SELECT TOP 1 ‘+7 (‘ + p.[Phone Code] + ‘) ‘ + LEFT(p.[Phone Number],3) + ‘-‘ + SUBSTRING(p.[Phone Number],4,2) + ‘-‘ + RIGHT(p.[Phone Number],2)
              FROM [trance FC`$Phone] p
              WHERE p.[Employee No_]=e.No_ AND p.[Default]=’1’ AND p.[Phone Number] »
              ),
              e.[Mobile Phone No_]
              ) AS [MobileNo_],

              Ответить
            • Роман:

              *псевдоним для таблицы
              FROM [trance FC`$Employee] e

              Ответить
          • Роман:

            Пробовал делать так:
            CASE
            WHEN e.[Mobile Phone No_] = MobileNo_ THEN »
            ELSE e.[Mobile Phone No_]
            END AS [MobilePhoneNo_],
            Все равно такая же ошибка получается

            Ответить
            • Пришлите полный текст запроса на электронную почту, необходимо его изучить.

              Ответить
              • Роман:

                Отправил и после отправки понял, что хотя бы одну строку нужно было удалить)))

                Ответить

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *