我有两列SERIAL_NO,在DETAILSTBL中构建,当我运行以下查询时,我得到以下结果集
select SERIAL_NO,BUILD from DETAILSTBL where SERIAL_NO like 'CCB1X1250AD%' and
BUILD < 'AJ' and BUILD!=''
如果我将SERIAL_NO从JS传递到后端作为CCB1X1250AE,那么我应该能够检索所有比CCB1X1250AE更小的记录,即CCB1X1250AD CCB1X1250AA CCB1X1250AB CCB1X1250AC,我尝试编写内部查询但无法获取记录,感谢任何帮助。
答案 0 :(得分:0)
如果我理解你,你想要这个:
select SERIAL_NO,BUILD from DETAILSTBL where SERIAL_NO like 'CCB1X1250A%' and BUILD < 'AJ' and BUILD!='' and SERIAL_NO < 'CCB1X1250AD'
答案 1 :(得分:0)
这将选择除serial_no的最后两个字符之外的所有字符:
SELECT substring(serial_no, 0, len(serial_no) -1) as a from detailstbl
答案 2 :(得分:0)
您可以使用ROW_NUMBER()根据SERIAL_NO列为BUILD列提供行号,然后与数字列进行比较。
with TMP_DETAILSTBL
as
(
select serial_no, build, ROW_NUMBER() OVER(PARTITION BY LEFT(SERIAL_NO,9) ORDER BY BUILD) ROW_NO from DETAILSTBL
)
select serial_no, build from TMP_DETAILSTBL
where row_no < (select row_no from TMP_DETAILSTBL where build = 'AE')
这将使序列号的o / p小于AE。