Выберите любой столбец в качестве имени в качестве переменной - PullRequest
0 голосов
/ 04 июля 2019

Я хочу в операторе select, используя столбец в качестве somename и используя where.(SQL Server)

Я использовал в SyBase:

SELECT
  'teste' as col1
  from sometable
  where col1 = 'teste'

Работает!

В MySql:

SELECT
  @col1:= 'teste'
  from sometable
  where @col1 = 'teste'

Работает!

Мне нужен эквивалент в SqlServer, но покажи ошибку, что col1 не существует.

1 Ответ

0 голосов
/ 04 июля 2019

Этого можно добиться, используя подзапрос или CTE (который является просто синтаксическим сахаром подзапроса).

Я не уверен в использовании '@variable: =' в Sybase, поэтому я просто игнорирую его, основываясь на разговоре в комментариях.

Подзапрос:

SELECT
        col1
    FROM (
        SELECT
            'teste' AS col1
        --,st.*
        FROM sometable AS st
    ) s
    WHERE col1 = 'teste'

CTE:

WITH CTE
AS (
    SELECT
        'teste' AS col1
        --,st.*
    FROM sometable AS st
)
SELECT
        col1
    FROM CTE
    WHERE col1 = 'teste'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...