【问题标题】:SQL Server : SUBSTRING from columnSQL Server:从列SUBSTRING
【发布时间】:2017-03-02 01:20:29
【问题描述】:

我正在尝试从我们的数据库中检索一些信息。特别是序列号。我需要使用SUBSTRING 函数来执行此操作,但是我真的被卡住了。我需要获取第 13 位为 0 且第 14 位为 1 的所有序列号。由于序列号可以随时更改,我认为检查 CustomerLotID 列中的第 13 位 0 和第 14 位 1 将是最佳选择但是我在这样做时遇到了一些问题。请注意,select 语句后面的 1, 2, '2/28/2017' 仅用于测试。

SELECT  
    1, 2, '2/28/2017', '06:00', TX.OperationID, FriendlyName,
    COUNT(DISTINCT(CustomerLotID)) AS SerialNumber
FROM    
    fsWIPTxHist Tx 
INNER JOIN 
    FactoryServerMES.dbo.fsOperation O ON TX.OperationID = O.OperationID
WHERE   
    customerlotid = SUBSTRING('0',13,1) --<> '5D25984G14120%'
    AND (TX.DateCreated BETWEEN '2/28/2017 10:00:00' AND '2/28/2017 10:59:59') 
    AND (Status = 'Avail')
    AND TX.OperationID IN (3100) 
GROUP BY 
    TX.OperationID, FriendlyName

【问题讨论】:

  • WHERE SubString(customerlotid, 13, 2) = '01' 不适合您?您是否考虑阅读 SubString 的文档?
  • 我确实阅读了 MSDN 上的文档。但是,我可能误解了语法。对不起,如果我把时间浪费在简单的东西上。我认为让我感到困惑的是它的表达部分。感谢您的帮助。

标签: sql sql-server syntax


【解决方案1】:

试试这个:

WHERE SUBSTRING(customerlotid ,13,2) = '01'

【讨论】:

    猜你喜欢
    • 2014-04-03
    • 1970-01-01
    • 2014-01-27
    • 2015-08-09
    • 2017-07-28
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多