SQL选择部分存在
具有不同长度的项目编号列表,例如:SQL选择部分存在,sql,select,Sql,Select,具有不同长度的项目编号列表,例如: 123 1254 25-135 然后我有一个长长的DrawingNumber列表,其中包含有效值和无效值 有效的是以项目编号开头的项目,请参见上文 valid: 123-78787 123-78799 25-135.115-15 25-135-511 invalid 1841 Anything else 我试着用 select * from DRAWINGNUMBERS where exit ??? PRO
123
1254
25-135
然后我有一个长长的DrawingNumber列表,其中包含有效值和无效值
有效的是以项目编号开头的项目,请参见上文
valid:
123-78787
123-78799
25-135.115-15
25-135-511
invalid
1841
Anything else
我试着用
select * from DRAWINGNUMBERS where exit ??? PROJECTNUMBER
这不会成功,因为存在或在。。。始终执行以查找值。
但是我不能用左。。因为项目编号的长度不同
询问:
您知道如何选择有效的绘图编号吗?典型的方法是使用exist或join。这里有一种方法:
select d.*,
(case when exists (select 1
from projects p
where d.drawingnumber like concat(p.projectnumber, '%')
)
then 1 else 0
end) as validFlag
from drawings d;
我更喜欢存在,因为两个项目可能匹配同一个图形。说12和123。联接将产生多行
我应该注意到并不是所有的数据库都支持concat函数。您可以使用+或| |或&这取决于您的数据库。您从何处获得退出?您可以将您正在使用的DBMS标记为SQLServer/mysql/oracle…MS SQL Server 2014EXIT是打字错误,意思是存在-