Sql server 使用if-else sql语句进行两次选择
目前我有以下SQL查询Sql server 使用if-else sql语句进行两次选择,sql-server,tsql,Sql Server,Tsql,目前我有以下SQL查询 DECLARE @UgpEntry VARCHAR(50) SET @t1.UgpEntry = (SELECT @UgpEntry = t1.UgpEntry from OITM t1) IF (@UgpEntry = -1) SELECT t1.ItemCode as sapitemcode , t1.CodeBars as Barcode , t1.ItemName as description ,LEFT(t1.ItemName
DECLARE @UgpEntry VARCHAR(50)
SET @t1.UgpEntry = (SELECT @UgpEntry = t1.UgpEntry from OITM t1)
IF (@UgpEntry = -1)
SELECT
t1.ItemCode as sapitemcode
, t1.CodeBars as Barcode
, t1.ItemName as description
,LEFT(t1.ItemName,20) as short_description
,
(select max(p.Price)
from ITM1 p
where p.ItemCode = t1.ItemCode
and p.PriceList = 1) as [price_1]
, CASE t1.VatGourpSa when 'V0' THEN 4 when 'V1' THEN 1 WHEN 'V2' THEN 2 WHEN 'V3' THEN 3 END as TaxCode,t1.U_GRUPOA, t1.U_GRUPOB, t1.U_GRUPOC, t1.UgpEntry
FROM OITM t1
WHERE t1.ItemCode='00004' and t1.UgpEntry = -1
ELSE
SELECT t1.ItemCode as sapitemcode
, t1.CodeBars as Barcode
, t1.ItemName as description
,LEFT(t1.ItemName,20) as short_description
, (select max(p.Price)
from ITM9 p
where p.ItemCode = t1.ItemCode
and p.UomEntry = 1) as [price_1],
(select max(p.Price)
from ITM1 p
where p.ItemCode = t1.ItemCode
and p.PriceList = 1) as [preciocaja]
, CASE t1.VatGourpSa when 'V0' THEN 4 when 'V1' THEN 1 WHEN 'V2' THEN 2 WHEN 'V3' THEN 3 END as TaxCode,t1.U_GRUPOA, t1.U_GRUPOB, t1.U_GRUPOC, t1.UgpEntry
FROM OITM t1
WHERE t1.ItemCode='v6p' and t1.UgpEntry > -1
我想做的是:
如果(@UgpEntry=-1),我认为这个变量是错误的,因为它应该是OITM中的列,但不确定如何使用该列作为IF语句,因为IF语句的布局是正确的。只需确保设置@UgpEntry的查询返回单个结果
DECLARE @UgpEntry VARCHAR(50)
SELECT @UgpEntry = UgpEntry FROM OITM WHERE [enter your condition]
IF (@UgpEntry = -1)
[remaining logic from your original post]
您能否打印
@UgpEntry
的值,以验证在达到IF语句时该值是否确实为-1?您可以这样设置@UgpEntry
:从表中选择@UgpEntry=UgpEntry
我应该在第一行这样做吗?在UgpEntry声明从您的表中选择@UgpEntry=UgpEntry?我刚刚编辑了我的主要帖子。您的SELECT语句中没有WHERE子句,无法从OITM获取UgpEntry。因此,如果该表中有多行,则没有ide返回的UgpEntry的值。@JMabee So在选择#1和#2时,都添加了t.UgpEntry=etc。post editedperfect,这是我的问题。多谢各位