Динамический запрос для выбора столбца на основе условия - PullRequest
0 голосов
/ 27 сентября 2018

Можно ли выбрать столбец на основе условия для динамических запросов.Если условие ложно, то он не должен выбирать этот столбец.Я хочу написать ниже как динамический запрос.

DECLARE @param varchar(10),
SELECT A, 
IF (@param = 'U')
B = A-2, '
From Table tb

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы можете начать с этого:

-- Declarations
DECLARE 
    @param varchar(10),
    @stm nvarchar(max),
    @err int

-- Parameter value
SET @param = 'U' -- or another value

-- Statement
SET @stm = N'SELECT ColumnA'
IF (@param = 'U') SET @stm = @stm + N', ColumnB'
SET @stm = @stm + N' FROM YourTable'

-- Execution
EXEC @err = sp_executesql @stm
IF @err = 0 PRINT 'OK'
ELSE PRINT 'Error'
0 голосов
/ 27 сентября 2018

Мы можем получить столбцы в зависимости от условия.Для этого нам нужен CASE.

Здесь я добавил пример кода,

SELECT
    CASE WHEN @param=1 THEN UserFullName ELSE firstName END as userName
FROM users

Пожалуйста, возьмите его.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...