Select con in ISNULL
-
26-09-2019 - |
Domanda
Sto scrivendo una stored procedure e all'interno di questa procedura che sto usando IsNull. Se il valore è nullo Voglio usare una dichiarazione prescelta come il valore di sostituzione è anche possibile?
IF ISNULL(@v_FilePrefix, (SELECT @v_FilePrefix = TransactionTypePrefix
FROM [ConfigTransactionType]
WHERE TransactionTypeID = @TransactionTypeID));
Soluzione
È possibile utilizzare questo:
IF @v_FilePrefix IS NULL
BEGIN
SELECT @v_FilePrefix = TransactionTypePrefix
FROM [ConfigTransactionType]
WHERE TransactionTypeID = @TransactionTypeID
END
Credo che questo è ciò che stai dopo?
Altri suggerimenti
Supponendo che il @TransactionTypeID restituirà sempre un valore:
SELECT @v_FilePrefix = COALESCE(@v_FilePrefix, TransactionTypePrefix)
FROM [ConfigTransactionType]
WHERE TransactionTypeID = @TransactionTypeID
COALESCE restituisce il primo valore non nullo. Se @v_FilePrefix non è nullo, sarà sufficiente impostare il valore a se stesso.
Ma sarebbe meglio usare:
IF @v_FilePrefix IS NULL
BEGIN
SELECT @v_FilePrefix = TransactionTypePrefix
FROM [ConfigTransactionType]
WHERE TransactionTypeID = @TransactionTypeID
END
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow