Выберите столбец, если пустой выбор от другого

Лямбда-исчисление

Ввод и вывод является церковными цифрами (т.е. натуральное число k \f n. f^k n; так 3 = \f n. f (f (f n)))

(\x. x x) (\y f. f (y y f)) (\y n. n (\x y z. z) (\x y. x) (\f n. f n) (\f. n (y (\f m. n (\g h. h (g f)) (\x. m) (\x. x)) f)))
34
задан graham.reeds 17 November 2009 в 09:56
поделиться

4 ответа

Как насчет объединения COALESCE и NULLIF.

SELECT COALESCE(NULLIF(SomeColumn,''), ReplacementColumn)
FROM SomeTable
89
ответ дан 27 November 2019 в 16:03
поделиться

Вы можете использовать оператор CASE для этого

select 
Case WHEN Column1 = '' OR Column1 IS NULL OR LEN (TRIM (Column1))  = 0 
     THEN Column2 
     ELSE Column1 END as ColumnName
from TableName
16
ответ дан 27 November 2019 в 16:03
поделиться

РЕДАКТИРОВАТЬ: Вы не можете использовать IF () в mssql.

Используйте оператор IF в части SELECT вашего SQL:

SELECT IF(field1 != '', field1, field2) AS myfield FROM ...
4
ответ дан 27 November 2019 в 16:03
поделиться

Вы всегда можете написать функцию isBlank () , что-то вроде

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

CREATE FUNCTION isBlank
(
    @CheckExpression varchar, @ReplacementExpression varchar
)
RETURNS varchar
AS
BEGIN
    IF @CheckExpression IS NOT NULL
    BEGIN
        IF @CheckExpression='' or LEN(@CheckExpression) = 0
        RETURN @ReplacementExpression
    ELSE
        RETURN @CheckExpression
    END

    RETURN @ReplacementExpression
END
GO
2
ответ дан 27 November 2019 в 16:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: