Sql 在like语句中连接字符串
我有一个要获取的字段,但当我尝试将“%”连接到该字段时,我将找不到匹配项 以下是完整的查询:Sql 在like语句中连接字符串,sql,sql-server-2008,Sql,Sql Server 2008,我有一个要获取的字段,但当我尝试将“%”连接到该字段时,我将找不到匹配项 以下是完整的查询: SELECT dbo.SALESQUOTATIONTABLE.CUSTACCOUNT AS 'Account_Number__c', dbo.SALESQUOTATIONTABLE.BUSRELACCOUNT AS 'Business_Relation_Number__c', SALESQUOTATIONTABLE.DIMENSION2_ AS 'Division__c',
SELECT
dbo.SALESQUOTATIONTABLE.CUSTACCOUNT AS 'Account_Number__c',
dbo.SALESQUOTATIONTABLE.BUSRELACCOUNT AS 'Business_Relation_Number__c',
SALESQUOTATIONTABLE.DIMENSION2_ AS 'Division__c',
QUOTATIONEXPIRYDATE AS 'Expiration__c',
PMF_NOOFITEMS AS 'Number_of_Items__c',
CREATEDDATE AS 'Quote_Date__c',
SALESQUOTATIONTABLE.QUOTATIONID AS 'Quote_Number_Ext_ID__c',
SALESQUOTATIONTABLE.QUOTATIONID AS 'Name',
SALESQUOTATIONTABLE.PAYMENT AS 'Terms__c',
SALESGROUP AS 'Territory__c',
dbo.SALESQUOTATIONTABLE.BUSRELACCOUNT AS 'Account_CBusiness_Relation_Number__c',
CASE dbo.SALESQUOTATIONTABLE.QUOTATIONSTATUS
WHEN 0 THEN 'Created'
WHEN 1 THEN 'Sent'
WHEN 2 THEN 'Confirmed'
WHEN 3 THEN 'Lost'
WHEN 4 THEN 'Cancelled'
WHEN 5 THEN 'Won'
ELSE 'Unknown' END AS 'Quote_Status__c',
'"' + REPLACE(NAME, '"', '') + '"' AS 'Contact_Name__c',
PHONE AS 'Contact_Phone__c',
Replace(dbo.CONTACTPERSON.EMAIL,',',' ') AS 'Contact_Email__c',
PMF_RFQRECEIVEDDATE AS 'Quote_Recieved_Date__c',
PMF_QUOTESENTDATE AS 'Quote_Sent_Date__c',
Replace(PGMNAME,',',' ') AS 'Program_Name__c',
Replace(OEM,',',' ') AS 'OEM_c',
(SELECT TOP 1(NAME) from USERINFO where SALESQUOTATIONTABLE.SalesTaker = USERINFO.NETWORKALIAS) as 'Pricing_Specialist_c',
SALESQUOTATIONTABLE.CustomerRef as 'Customer_Reference__c',
SalesQuotationTable.pmf_SalesQuoteComment as 'Sales_Quote_Comment__c',
SalesQuotationTable.QuotationCategory as 'Quotation_Type__c',
(select Max(CUSTQUOTATIONJOUR.QuotationDate) from CUSTQUOTATIONJOUR where SALESQUOTATIONTABLE.QUOTATIONID like CUSTQUOTATIONJOUR.QUOTATIONDOCNUM +'%') as 'Quotation_Date__c'
FROM
dbo.SALESQUOTATIONTABLE
LEFT OUTER JOIN
dbo.CONTACTPERSON ON dbo.SALESQUOTATIONTABLE.CONTACTPERSONID = dbo.CONTACTPERSON.CONTACTPERSONID
--LEFT OUTER JOIN CUSTQUOTATIONJOUR on SALESQUOTATIONTABLE.QUOTATIONID like (CUSTQUOTATIONJOUR.QUOTATIONDOCNUM +'%')
WHERE
CREATEDDATE >= CONVERT(VARCHAR(10), GETDATE() - 30, 101)
OR
--Only update quotes that were created in 2013 or after
(MODIFIEDDATE >= CONVERT(VARCHAR(10), GETDATE() - 30, 101)
AND
YEAR(CREATEDDATE) > 2012)
我尝试使用的部分是:
(select Max(CUSTQUOTATIONJOUR.QuotationDate) from CUSTQUOTATIONJOUR where SALESQUOTATIONTABLE.QUOTATIONID like CUSTQUOTATIONJOUR.QUOTATIONDOCNUM +'%') as 'Quotation_Date__c'
表中的数据如下(作为示例)
我从date获得结果(我只需要最新的,因此是Max()
然而,在子查询中提交的日期只返回空值,即使我验证了确实存在匹配项
CUSTQUOTATIONJOUR.QUOTATIONDOCNUM +'%'
正确吗?我倒着吃了类似的东西:
(select Max(CUSTQUOTATIONJOUR.QuotationDate) from CUSTQUOTATIONJOUR where CUSTQUOTATIONJOUR.QUOTATIONDOCNUM like SALESQUOTATIONTABLE.QUOTATIONID +'%' ) as 'Quotation_Date__c'
请尝试使用
CUSTQUOTATIONJOUR.QUOTATIONDOCNUM+'-%'
if-在我认为是反向的情况下是一致的。请尝试像CUSTQUOTATIONJOUR.QUOTATIONID+'%这样的SALESQUOTATIONTABLE.QUOTATIONDOCNUM
(select Max(CUSTQUOTATIONJOUR.QuotationDate) from CUSTQUOTATIONJOUR where CUSTQUOTATIONJOUR.QUOTATIONDOCNUM like SALESQUOTATIONTABLE.QUOTATIONID +'%' ) as 'Quotation_Date__c'