Sql 根据VARCHAR的最后4/5个字符筛选记录

Sql 根据VARCHAR的最后4/5个字符筛选记录,sql,sql-server,Sql,Sql Server,我有一个VARCHAR列,它包含一个整数,后跟一个正斜杠和一个四位整数 示例数据: 82/2015 126/2017 5763/2017 我试图只检索2017年结束的记录 126/2017 5763/2017 我假设我需要使用正斜杠拆分字符串,然后执行比较?或者我可以简单地与最后的4/5个字符进行比较?SQL是否包含可以为我执行这两项操作的函数?您可以使用它来执行此操作 SELECT * FROM YourTable WHERE RIGHT(SomeDate, 4) = '2017' 你可

我有一个VARCHAR列,它包含一个整数,后跟一个正斜杠和一个四位整数

示例数据:

82/2015
126/2017
5763/2017
我试图只检索2017年结束的记录

126/2017
5763/2017
我假设我需要使用正斜杠拆分字符串,然后执行比较?或者我可以简单地与最后的4/5个字符进行比较?SQL是否包含可以为我执行这两项操作的函数?

您可以使用它来执行此操作

SELECT *
FROM YourTable
WHERE RIGHT(SomeDate, 4) = '2017'
你可以用它来做这件事

SELECT *
FROM YourTable
WHERE RIGHT(SomeDate, 4) = '2017'
像一样使用

where col like '%/2017'
一样使用

where col like '%/2017'

提示:
RIGHT
函数。如果要搜索该数据,则应在单独的字段中。这将打破第一个NF。这还意味着您不能使用任何索引来加快查询速度,每次都强制执行完整表扫描。您可以使用
RIGHT(Thatfield,4)
创建一个新的持久化计算列,并对其应用索引。提示:
RIGHT
函数。如果要搜索该数据,它应该位于单独的字段中。这将打破第一个NF。这还意味着您不能使用任何索引来加快查询速度,每次都会强制执行完整表扫描。您可以使用
右键(Thatfield,4)
创建一个新的持久化计算列,并对其应用索引。您可能希望使用2017的字符串表示形式,如“2017”@SurjitsdSQL将执行从VARCHAR到INT的转换,并且他的示例数据不包含任何特殊字符。它本来可以按原样工作,但您的建议确实让它更健壮。您可能希望使用2017的字符串表示法,如“2017”@SurjitSD SQL将从VARCHAR转换为INT,并且他的示例数据不包含任何特殊字符。它本来可以按原样工作,但你的建议确实使它更加健壮。这是OP问题的最简单解决方案。这是OP问题的最简单解决方案。