Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL选择部分存在_Sql_Select - Fatal编程技术网

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是打字错误,意思是存在-