我在SQL Server中遇到一个问题,我有一个列,其中包含一个名称列表,这些名称可能会或者可能没有最后一个出生日期。然后将此列合并到一个模板中,该模板要求仅显示名称而不是出生日期。
我遇到的问题是,如果所有行都包含姓名和出生日期值,我可以在最后修改出生日期。但是,如果最后没有出生日期,我如何告诉SQL单独留下这些行而不是修剪掉这些行?
例如:
COLUMN_NAME
John Doe 01/01/1990
Jane Smith 31/12/1991
Bob Fossil
我目前的代码:
select ..., left (COLUMN_NAME, len(COLUMN_NAME) - 10)
FROM...
这将正确地取出John Doe和Jane Smith的出生日期,但我最后得到了Bob Fossil的空白(因为它是10个字符)。
答案 0 :(得分:0)
您可以使用PATINDEX作为简单的正则表达式来检查日期模式,检索起始索引(如果存在)并将其删除。
这里的例子是
@Component
public class ExampleListener implements MessageListener {
@Autowired
private ObjectMapper objectMapper;
public void onMessage(Message message) {
if (message instanceof TextMessage) {// we set the converter targetType to text
try {
String json = ((TextMessage) message).getText(); // here you have your event object as json string
Event event = objectMapper.readValue(json, Event.class); // convert back to event object
}
catch (JMSException ex) {
throw new RuntimeException(ex);
}
}
else {
throw new IllegalArgumentException("Message must be of type TextMessage");
}
}