объединить текст в sql я думаю? - PullRequest
0 голосов
/ 11 сентября 2011

Учитывая следующий оператор SQL, показанный ниже.Я не получаю ничего возвращенного для "image_link" в этой строке кода

,  'http://www.thesite.com/v/vspfiles/photos/' + IsNull(p.Vendor_PartNo,p.ProductCode) + '-2.jpg' AS image_link

Если я изменю эту строку на следующую (удаляя "." В -2.jpg), то я получу возвращенныйполная ссылка (префикс и суффикс с), но без "."

,  'http://www.thesite.com/v/vspfiles/photos/' + IsNull(p.Vendor_PartNo,p.ProductCode) + '-2jpg' AS image_link

Что не так и как я могу включить "."в суффиксе?

SELECT p.ProductCode AS id
    ,  p.ProductName AS title
    ,  'Home & Garden > Household Appliance Accessories > Laundry Appliance Accessories' AS product_type
    ,  IsNull(pe.SalePrice,pe.ProductPrice) AS price
    ,  IsNull(pe.ProductManufacturer,'n/a') AS brand
    ,  IsNull(pe.ProductCondition,'new') AS condition
    ,  CONVERT(VARCHAR(10), (GETDATE() + 30),120) AS expiration_date
    ,  pd.ProductDescriptionShort AS [stripHTML-description]
    ,  'http://www.thesite.com/v/vspfiles/photos/' + IsNull(p.Vendor_PartNo,p.ProductCode) + '-2.jpg' AS image_link
    ,  'http://www.thesite.asp?ProductCode=' + p.ProductCode + '&Click=1327'  AS link
    , CAST(pe.ProductWeight AS VARCHAR(20)) + ' lb' AS weight
 FROM Products p
 JOIN Products_Descriptions pd ON p.ProductID = pd.ProductID
 JOIN Products_Extended pe ON pd.ProductID = pe.ProductID
WHERE (p.IsChildOfProductCode is NULL OR p.IsChildOfProductCode = ' 
       AND (p.HideProduct is NULL OR p.HideProduct <> 'Y')
  AND pe.ProductPrice > 0
ORDER BY p.ProductCode

Ответы [ 3 ]

1 голос
/ 11 сентября 2011

В SQL-сервере (Microsoft) просто используйте знак + и символ (46), чтобы получить период

'http://www.thesiste/v/vspfiles/photos/'+
    isNull(p.vendor_partno,p.productCode)+'-2'+char(46)+'jpg'

Посмотрите, вызывает ли http: проблему, возможно, сервер обрабатывает ссылку по-другому

'ht'+'tp://www.thesiste/v/vspfiles/photos/'+
    isNull(p.vendor_partno,p.productCode)+'-2'+char(46)+'jpg'

Можно также попробовать

replace('http:||www.thesiste|v|vspfiles|photos|','|','/')+
    isNull(p.vendor_partNo,p.productCode)+'-2'+char(46)+'jpg'

в случае, если символ косой черты вызывает проблему

Похоже, что символ слеша обрабатывается особым образом. Попробуйте создать переменную с начальным значением и используйте это ...

DECLARE @URL varchar(200)
SET @Url = 'http://www.thesiste/v/vspfiles/photos/'

    @url + isNull(p.vendor_partno,p.productCode)+'-2'+char(46)+'jpg'

Или, что еще хуже,

    'http:'+char(47)+char(47)+'www.thesiste'+char(47)+'v'+char(47)+'vspfiles'+
char(47)+'photos'+char(47)'+
        isNull(p.vendor_partno,p.productCode)+'-2'+char(46)+'jpg'
0 голосов
/ 11 сентября 2011

Я не проверял это, но мне кажется, что у вас проблемы с типом данных?

'http://www.thesite.com/v/vspfiles/photos/' + Cast(IsNull(p.Vendor_PartNo,p.ProductCode) AS varchar) + '-2.jpg' AS image_link
0 голосов
/ 11 сентября 2011

Вы пробовали это?

CONCAT('http://www.thesite.com/v/vspfiles/photos/', IsNull(p.Vendor_PartNo,p.ProductCode),'-2.jpg') AS image_link
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...