Если вы читаете это, и используете Spring Boot, у вас есть еще один вариант для этой функции
. Обычно список с запятой очень неуклюжий для случая использования в реальном мире (и иногда даже невозможно, если вы хотите использовать запятые в своей конфигурации):
email.sendTo=somebody@example.com,somebody2@example.com,somebody3@example.com,.....
С помощью Spring Boot вы можете записать его так (начало индекса в 0):
email.sendTo[0]=somebody@example.com
email.sendTo[1]=somebody2@example.com
email.sendTo[2]=somebody3@example.com
И использовать его например:
@Component
@ConfigurationProperties("email")
public class EmailProperties {
private List<String> sendTo;
public List<String> getSendTo() {
return sendTo;
}
public void setSendTo(List<String> sendTo) {
this.sendTo = sendTo;
}
}
@Component
public class EmailModel {
@Autowired
private EmailProperties emailProperties;
//Use the sendTo List by
//emailProperties.getSendTo()
}
@Configuration
public class YourConfiguration {
@Bean
public EmailProperties emailProperties(){
return new EmailProperties();
}
}
#Put this in src/main/resource/META-INF/spring.factories
org.springframework.boot.autoconfigure.EnableAutoConfiguration=example.compackage.YourConfiguration
Я просто попробовал это на базе данных AdventureWorks, и она работает
Use AdventureWorks
Declare @myVar int
SET @myVar = 1
if (@myVar = 2)
select top 2 * from HumanResources.Department
else
select top 1 * from HumanResources.Department
Я не имею MSSQL удобный, но проверяю синтаксис на Оператор выбора в случае, если я понял его превратно, и также я не уверен, должен ли TOP 1 выйти за пределы случая, как я выразился здесь или если он ЕЩЕ должен войти (имя TOP 1). Идея:
SELECT TOP 1 CASE WHEN myexpression = 'true' THEN 'my message' ELSE name END
FROM people;
Здесь myexpression должен быть или константами или связанный с таблицами, существующими в запросе, например
CASE WHEN address LIKE '%Michigan%'
, где адрес является другим полем у людей таблицы.
пз: Найденный синтаксисом СЛУЧАЯ MSSQL здесь :-)
select top 1 name
from people
where @MyParameter = whatever
union
select 'my message' as name
where @MyParameter != whatever
Все в одном операторе.