Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
SSIS Integration Runtime em Azure Data Factory
Devolve uma de duas expressões baseadas na avaliação de uma expressão booleana. Se a expressão booleana for avaliada como TRUE, então a primeira expressão é avaliada e o resultado é o resultado da expressão. Se a expressão booleana for avaliada como FALSE, então a segunda expressão é avaliada e o seu resultado é o resultado da expressão.
Sintaxe
boolean_expression?expression1:expression2
Arguments
boolean_expression
É uma expressão válida que avalia para TRUE, FALSE ou NULL.
expressão1
É uma expressão válida?
expressão 2
É alguma expressão válida.
Tipos de Resultados
O tipo de dado expressão1 ou expressão2.
Observações
Se o boolean_expression avalia para NULL, o resultado da expressão é NULL. Se uma expressão selecionada, seja expression1 ou expression2, for NULL, o resultado é NULL. Se uma expressão selecionada não for NULLA, mas a que não for selecionada for NULLA, o resultado é o valor da expressão selecionada.
Se expression1 e expression2 tiverem o mesmo tipo de dado, o resultado é esse tipo de dado. As seguintes regras adicionais aplicam-se aos tipos de resultados:
O tipo de dado DT_TEXT exige que expression1 e expression2 tenham a mesma página de códigos.
O comprimento de um resultado com o tipo de dado DT_BYTES é o comprimento do argumento mais longo.
O conjunto de expressões, expression1 e expression2, deve avaliar para tipos de dados válidos e seguir uma destas regras:
Numérico Tanto expression1 como expression2 devem ser um tipo de dado numérico. A interseção dos tipos de dados deve ser um tipo de dados numérico, conforme especificado nas regras sobre as conversões numéricas implícitas que o avaliador de expressões realiza. A interseção dos dois tipos de dados numéricos não pode ser nula. Para mais informações, consulte Tipos de Dados de Serviços de Integração em Expressões.
String Tanto expression1 como expression2 devem ser de um tipo de dado string: DT_STR ou DT_WSTR. As duas expressões podem avaliar diferentes tipos de dados de cadeia. O resultado tem o tipo de dados DT_WSTR com o comprimento do argumento mais longo.
Data, Hora ou Data/Hora Tanto expression1 como expression2 devem avaliar para um dos seguintes tipos de dados: DT_DBDATE, DT_DATE, DT_DBTIME, DT_DBTIME2, DT_DBTIMESTAMP, DT_DBTIMESTAMP2, DT_DBTIMESTAPMOFFSET ou DT_FILETIME.
Observação
O sistema não suporta comparações entre uma expressão que avalia para um tipo de dado temporal e uma expressão que avalia para um tipo de data ou data/hora. O sistema gera um erro.
Ao comparar as expressões, o sistema aplica as seguintes regras de conversão na ordem listada:
Quando as duas expressões avaliam para o mesmo tipo de dados, é realizada uma comparação desse tipo de dado.
Se uma expressão for um tipo de dado DT_DBTIMESTAMPOFFSET, a outra expressão é implicitamente convertida em DT_DBTIMESTAMPOFFSET e é realizada uma comparação DT_DBTIMESTAMPOFFSET. Para mais informações, consulte Tipos de Dados de Serviços de Integração em Expressões.
Se uma expressão for um tipo de dado DT_DBTIMESTAMP2, a outra expressão é implicitamente convertida em DT_DBTIMESTAMP2 e é realizada uma comparação DT_DBTIMESTAMP2.
Se uma expressão for um tipo de dado DT_DBTIME2, a outra expressão é implicitamente convertida em DT_DBTIME2, e é realizada uma comparação DT_DBTIME2.
Se uma expressão for de um tipo diferente de DT_DBTIMESTAMPOFFSET, DT_DBTIMESTAMP2 ou DT_DBTIME2, as expressões são convertidas para o tipo de dado DT_DBTIMESTAMP antes de serem comparadas.
Ao comparar as expressões, o sistema faz as seguintes suposições:
Se cada expressão for um tipo de dado que inclui segundos fracionários, o sistema assume que o tipo de dado com o menor número de dígitos durante frações de segundos tem zeros para os dígitos restantes.
Se cada expressão for de tipo de dado de data, mas apenas uma expressão tiver um deslocamento de fuso horário, o sistema assume que o tipo de dado de data sem deslocamento de fuso horário está em Tempo Universal Coordenado (UTC).
Para mais informações sobre tipos de dados, consulte Tipos de Dados de Serviços de Integração.
Exemplos de Expressões
Este exemplo mostra uma expressão que avalia condicionalmente a savannah ou unknown.
@AnimalName == "Elephant"? "savannah": "unknown"
Este exemplo mostra uma expressão que faz referência a uma coluna ListPrice . ListPrice tem o tipo de dado DT_CY. A expressão multiplica condicionalmente Preço de Lista por 0,2 ou 0,1.
ListPrice < 350.00 ? ListPrice * .2 : ListPrice * .1
Ver também
Precedência e Associatividade dos Operadores
Operadores (Expressão SSIS)