Руководство по языку sql


MERGE INTO PRODUCT_IVENTORY AS


Download 1.22 Mb.
Pdf ko'rish
bet14/62
Sana23.04.2023
Hajmi1.22 Mb.
#1393455
1   ...   10   11   12   13   14   15   16   17   ...   62
Bog'liq
Firebird3 SQL features

MERGE INTO PRODUCT_IVENTORY AS TARGET 
USING ( 
SELECT 
SL.ID_PRODUCT, 
SUM(SL.QUANTITY) 
FROM SALES_ORDER_LINE SL 
JOIN SALES_ORDER S ON S.ID = SL.ID_SALES_ORDER 
WHERE S.BYDATE = CURRENT_DATE 
AND SL.ID_PRODUCT = :ID_PRODUCT 
GROUP BY 1 
AS SOURCE(ID_PRODUCT, QUANTITY) 
ON TARGET.ID_PRODUCT = SOURCE.ID_PRODUCT 
WHEN MATCHED AND TARGET.QUANTITY - SOURCE.QUANTITY <= 0 THEN 
DELETE 
WHEN MATCHED THEN 
UPDATE SET 
TARGET.QUANTITY = TARGET.QUANTITY - SOURCE.QUANTITY, 
TARGET.BYDATE = CURRENT_DATE 
RETURNING OLD.QUANTITY, NEW.QUANTITY, SOURCE.QUANTITY 
INTO :OLD_QUANTITY, :NEW_QUANTITY, :DIFF_QUANTITY 
… 
Регулярные выражения в SUBSTRING
Функция SUBSTRING с регулярным выражением возвращает часть строки 
соответствующей шаблону в предложении SIMILAR. Если соответствия не 
найдено, то возвращается NULL. 


Новые возможности языка SQL Firebird 3.0 
19 
Синтаксис
::= 
SUBSTRING(
FROM
ESCAPE
::=  
::= 
"R2>" 
Примечания
1. 
Если любая из частей (R1, R2 или R3) регулярного выражения не является 
пустой строкой и не соответствует формату , будет 
возбуждено исключение. 
2. 
Возвращаемое значение соответствует части R2 регулярного выражения. 
Для этого значения истинно выражение 
 SIMILAR TO R1 || R2 || R3 ESCAPE  
Примеры
substring('abcabc' similar 'a#"bcab#"c' escape '#') -- bcab 
substring('abcabc' similar 'a#"%#"c' escape '#') -- bcab 
substring('abcabc' similar '_#"%#"_' escape '#') -- bcab 
substring('abcabc' similar '#"(abc)*#"' escape '#') -- abcabc 
substring('abcabc' similar '#"abc#"' escape '#') --  

Download 1.22 Mb.

Do'stlaringiz bilan baham:
1   ...   10   11   12   13   14   15   16   17   ...   62




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling