SELECT *
FROM machine_tsj
WHERE (设备代码 LIKE '
SELECT DISTINCT SUBSTRING(设备代码, 1, 4) AS 代码
FROM machine_tsj
WHERE (设备名称 =
       明斜钢丝绳牵引胶带运输机 )%')
       AND (设备名称 = '明斜钢丝绳牵引胶带运输机')
得不到查询结果??请问如何修改??

解决方案 »

  1.   

    SELECT * FROM machine_tsj WHERE (设备代码 LIKE 'SELECT DISTINCT SUBSTRING(设备代码, 1, 4) AS 代码 FROM machine_tsj WHERE (设备名称 = 明斜钢丝绳牵引胶带运输机 )%') AND (设备名称 = '明斜钢丝绳牵引胶带运输机')
      

  2.   

    取决于你 like '语句%',这些语句INSERT的时候,是不是有严格的代码风格了,比如“SUBSTRING(设备代码, 1, 4)”,如果插入的时候是这样的“SUBSTRING(设备代码,1,4)”,逗号之后没有空格。
    还有其它换行缩进的问题也一样。
      

  3.   

    SELECT * 
    FROM machine_tsj ,
     
    (SELECT DISTINCT SUBSTRING(设备代码, 1, 4) AS 代码 
          FROM machine_tsj 
         WHERE (设备名称 = '明斜钢丝绳牵引胶带运输机' )) b
    WHERE (设备代码 LIKE b.代码+'%') 
           AND (设备名称 = '明斜钢丝绳牵引胶带运输机') 
      

  4.   


    参见二楼,这种查询,除非在INSERT的时候有严格的代码规范,否则很难查。
      

  5.   


    SELECT * 
    FROM machine_tsj  a
    WHERE  exists (  SELECT  1
    FROM machine_tsj b 
    WHERE b.设备名称= 
           '明斜钢丝绳牵引胶带运输机' and charindex(a.设备代码 ,SUBSTRING(b.设备代码, 1, 4) )>0 ) 
           AND (设备名称 = '明斜钢丝绳牵引胶带运输机')