我正在使用SQL SERVER 2008。我的查询给了我错误。我想从表[DL_TRN]中获取数据或执行查询。如果该记录不在该表中,那么我想从另一个表[D_Loan]中获取详细信息。我使用了这个查询:
DECLARE @DCount INTEGER;
SET @FCount=(SELECT COUNT(*) FROM [MsumCOOP].[dbo].[DL_TRN] WHERE [M_CODE]=6162 AND ([LOAN_COMP]<>'Y' OR [LOAN_COMP] IS NULL));
SELECT m.[CODE],m.[NAME],d.[OP_
我正在将SQL从Redshift移动到AWS Athena,但我遇到了麻烦,因为SQL给了我错误。 SELECT abc_name AS bca_name,
CASE
WHEN name = 'aaa' THEN 'AAC'
WHEN name = 'bbb' THEN 'BBA'
WHEN name = 'ccc' THEN 'CCB'
END AS abc
FROM master_table
WHERE abc IS NOT NULL; 这个SQL给了我一个错误:它告诉我没有abc
我尝试在SQL Server中创建一个带有CASE WHEN EXISTS子句的SQL查询。我假设我做错了什么,因为当我运行SELECT * FROM [Christmas_Sale]时,SQL永远不会加载代码。
CREATE VIEW [Christmas_Sale]
AS
SELECT
C.*,
CASE
WHEN EXISTS (SELECT S.Sale_Date
FROM [Christmas_Sale] s
WHERE C.ID =
(我查过了,找不到答案,如果这是一个重复,只要指出一个链接,我会删除这个问题)
假设我有以下代码
select CASE WHEN lower(Http_User_Agent) like '%mobi%' then 'Mobile'
else 'Desktop' end as Device
from Http_User_Agent
where Device = 'Mobile'
回传
Msg 207, Level 16, State 1, Line 4
Invalid column name 'D
我正在努力将mysql查询转换为sql server,但是当我运行该查询时,它给了我错误The multi-part identifier "e.EpVisitCount" could not be bound.,这里我已经发布了我的两个查询--请您查看一下,为什么它在sql server中给了我错误?
Mysql查询(工作良好):
UPDATE
tb_EpVisitRange as v left JOIN tb_Episode as e ON (v.company_id = e.CustID) AND (v.CMW = e.CMW)
这个问题可以是针对SQL server的。当我编写查询时,例如:
SELECT * FROM IndustryData WHERE Date='20131231'
AND ReportTypeID = CASE WHEN (fnQuarterDate('20131231')='20131231') THEN 1
WHEN (fnQuarterDate('20131231')!='20131231') THEN 4
我正在尝试定义一个名为End Year的新列,它是另一个列加上一个表示年数的数字的计算。由于某些原因,我的脚本无法识别SQL Server2008中使用以下SQL语句的名为Allocation Year的新列。请注意,Contract Year是在未编辑的完整脚本中标识的现有列:
,[Allocation Type] =
CASE
WHEN left([contract type] ,1)'1' = THEN 'O&M'
ELSE 'N/A'
END
,[Allocation Year] =
CASE
WHEN [Contract Ye
我正试图在SQL Server (存储过程)中执行一条CASE语句,其中我应该检查它是否应该从另一个表中获得一些结果。
我编造这个例子只是为了说明这个例子(不起作用!)
SELECT
*
FROM
cards
WHERE
CardID = @CardID
AND
CardID =
CASE WHEN @AlreadyOnDeck = 1 THEN
IN (
SELECT CardID FROM OnDeckTable WHERE CardID = @CardID
下面的代码在sql服务器中工作,但在中不起作用:
SELECT t2.*
,CASE
WHEN t2.ACode <> t2.ACity AND t2.ACode in (SELECT DISTINCT t6.BCode FROM RiskTable WHERE Risklevel = 'Except')
THEN 1 ELSE 0 END AS CityRisk
FROM Table1 t2
LEFT JOIN RiskTable t6 ON t2.ACode = t6.BCODE
WHERE t2.message = 4
我收到的错误消息是
Anal
我正在尝试更新案例表中的所有行:
UPDATE CASE c
SET c.number =
(
select p.number
from CASE c, Papers p, Dokument d
where c.dokument = d.id
and p.id = d.paperid
and p.numer is not null
and c.case = null;
)
where
(this same as in set : when case.number is null but papers.numer is not null)
我不能这样做,因为我不知道如何写wher
如何将下面的Sql server语句转换为Mysql。而不让它成为存储过程。我们正在将Sql查询迁移到Mysql。
SQL SERVER 1
IF (@val = true)
BEGIN
Insert into custom_report values (1,2,3);
END
ELSE
BEGIN
Insert into custom_report values (4,5,6);
END;
SQL SERVER 2
IF (@val = true)
BEGIN
SELECT * FROM custom_report WHERE is_active = 1;
END
E
我从我的SQL Server中获得以下错误消息:
无效列名“价格”
在中。
我的SQL语句:
SELECT
CASE
WHEN salePriceDate BETWEEN salePriceStartDate AND salePriceEndDate
THEN salePrice
ELSE
CASE
WHEN salePriceDate2 BETWEEN salePriceStartDate2 AND salePriceEndDate2
我有以下SQL:
SELECT A.*,
(SELECT answer FROM [tblAnswers] B
WHERE B.memberID = A.memberID AND QuestionID = 3) AS ethnicity
FROM [tblMembers] A
WHERE
LOWER(gender) = 'm'
AND ethnicity = 'Sephardi'
我得到了错误Invalid column name 'ethnicity',引用了对该列的最后一次引用。
问:为什么这个列不能用于WHERE子句?
我知
如果我有这样的查询
SELECT date_trunc('day', assigndate)e,
count(CASE WHEN a.assigneeid = 65548
AND a.assigneeid IN
(SELECT userid
FROM groupmembers
WHERE groupid = 65553) THEN 1 ELSE NULL END) assigned,
count(CASE WHEN a.assign
我试图在SQL CASE WHEN子句中添加下面的WHERE语句,但Server不允许我这样做。所有使用的列都是相同的Data Types,但仍然给我错误,请检查和建议为什么它不工作?
WHERE supplierAccountDetail.SupplierMasterID IN (
CASE
WHEN @SupplierMasterID IS NOT NULL
THEN @SupplierMasterID
ELSE (sales.ParentSupplierMasterID
在SQL Server中,我有一个包含数字的字符串列。我需要的每个条目只有一个数字,所以不需要解析。我需要一些方法来查找包含从400到450的数字的所有行。而不是做:
...where my stringcolumn like '%400%' or stringcolumn like '%401%' or stringcolumn like '%402%' or ...
有没有更好的方法可以节省一些打字时间?
这些行中还有其他值,例如:'5335154',test4559@me.com','555-555-5555
我正在尝试使用case来改变在where子句中检查的值,但我得到了错误:
关键字'CASE‘附近的语法不正确
SQL Server 2005
select *
from table
where ((CASE when adsl_order_id like '95037%'
then select '000000'+substring(adsl_order_id,6,6)
ELSE select adsl_order_id
END)
not in (select mwebID from
我有一个相当长的查询,它应该给我一些关于发货的信息,并且它起作用了,但是它的性能非常糟糕。加载大约需要4500毫秒。
SELECT
DATE(paid_at) AS day,
COUNT(*) as order_count,
(
SELECT COUNT(*) FROM line_items
WHERE order_id IN (SELECT id from orders WHERE DATE(paid_at) = day)
) as product_count,
(
SELECT COUNT(*) FROM orde
我正在编写一个存储过程来查询数据库。
参数被传递给where子句的过程。
我似乎找不到对SQL IF和CASE语句优缺点的描述。谁能给我一个理由,为什么我应该使用其中一个而不是另一个,或者如果我完全走错了方向?
方法1:
DECLARE @SQL_WHERE_QUERY NVARCHAR(MAX) = '';
IF @SQL_PARAM IS NOT NULL SET @SQL_WHERE_QUERY = @SQL_WHERE_QUERY + ' AND [COLUMN_NAME] = '''+@SQL_PARAM+'''
我刚刚把我的网站上传到Heroku,但是我在我的一个控制器中发现了一个错误。显然,我的postgres代码有语法错误。这在sqlite3中有效,但当我将其转换为postgres时,出现了语法错误。
@cars=Car.find_by_sql("SELECT cars.*, CASE WHEN EXISTS (SELECT book_cars.* FROM book_cars WHERE book_cars.car_id=cars.id AND book='t') THEN 'TRUE' ELSE 'FALSE' END AS
我试图在Oracle中做CASE WHEN,但是我得到了这个错误。
我在SQL SERVER中做了一些类似的事情,并且它工作了。
SELECT SUM(amount) as AMOUNT,Substr(con.DATES, 1,6 ) as DATES,
CASE
WHEN pro.cod_grup in ('54') and pro.cod_grup_2 in ('38')
THEN 'WORKSHOPS'
end as "ORIGIN"
我在pandas中使用WHERE in子句运行SQL脚本时遇到了一个问题,该子句正在挑选列表或元组的成员。 tuple=(1,2,3,4,5,6, 7) # there are 2228 members
date=20200101
sql=pd.read_sql_query("""SELECT *
FROM [MY_TABLE] with (nolock)
WHERE [
我在db2查询中有一个问题
我试着运行这个查询
SELECT t.* ,
CASE WHEN column in (SELECT data FROM otherTable WHERE conditions...)
then 5
else 0
end as 'My new data'
FROM table t
WHERE conditions....
但要犯错误
[Error Code: -115, SQL State: 42601] [SQL0115] Comparison operator IN not valid.
当我将子查询改为where语句
我有一个CASE表达式,对于一个WHEN子句,我从一个表中选择数据并检查它是否存在。如果它存在,我希望返回THEN表达式中该行中的一列。
case
--a few when statements
when name = 'aiden'
THEN
case
when (select top 1 * from tableA a where [list of conditions]) = 1 and (select top 1 value from tableB b where [list of conditions
SELECT
user_groups.*,
groups.grp_display_name,
CASE user_groups.uug_active
WHEN '1' THEN 'YES'
WHEN '0' THEN 'NO'
END AS usr_active
FROM
user_groups,
groups
WHERE
user_groups.uug_is_deleted = 0
AND user_groups.gro
如何在SQL SERVER中使用case或if with in Where子句?
DECLARE
@Sta int
Set @Sta = 1
SELECT TOP 1000
[No]
,[Material]
,[Material Description]
,[Procurement Type]
FROM [PMLite].[dbo].[zSTO:8/22/2016]
WHERE IF @Sta = 1
[Procurement Type] IN ('F',
为什么会发生在我身上?当我想在sql中设置if条件时,我不知道为什么我的语法会出错
IF quantity <= 0
UPDATE tbl_books
SET status = 'Not Available'
ELSE
UPDATE tbl_books
SET quantity = quantity -1
WHERE isbn = 'tes1'
我遇到了这样一个错误
#1064 - You have an error in your SQL syntax; check the manual that corres
我想知道sql server中是否有任何方法可以根据哪些行首先满足条件来对行进行排序,例如,如果我正在编写这样的查询:
SELECT * FROM IMAGES
WHERE NAME LIKE '%TEST%'
AND DESCRIPTION LIKE '%TEST%'
我希望与名称匹配的行出现在与描述匹配的行之前,通常sql server会根据它们的ID对它们进行排列,so...anyway可以这样做吗?!(注意:我不想使用union语句,因为那样会耗尽数据库)。
我希望根据以下查询在其中一列中具有yes/no值。我成功地获得了yes值,但我不知道如何在列中没有值。
create procedure xyz
as
update event_alerts
set server_match = 'YES'
where event_alerts.server_name in
(
select server_name
from event_alerts
inner join sql_servers on
event_alerts.server_name = sql_servers.List_of_s
我正在尝试弄清楚如何在SQL Server存储过程中具有以下条件。我有一个@Variance参数,它可以有'Y‘、'N’或'A‘
where条件必须如下所示:
IF @Variance = 'Y' THEN
flag_d ≠ ‘Y’ OR flag_c ≠ ‘Y’
IF @Variance = 'N' THEN
flag_d = ‘Y’ AND flag_c = ‘Y’
and If @Variance = 'A' THEN
Do not check columns flag_c and flag_d.
我有一群参加过测试的人。我可以用下面的查询选择他们的ID:
SELECT person_id
FROM tests
WHERE test_code = 1234
我想从一个人口统计表中提取这些人的记录,所以我尝试了这个子查询:
SELECT *
FROM demographics d
WHERE d.person_id IN (
SELECT t.person_id
FROM tests t
WHERE t.test_code = 1234
)
..。但我没有得到任何结果。如果我从(函数式)子查询中提取两个IN,并将它们硬编码到IN条件中:
SELECT *
FROM
我有一个带有参数@Region的SQL Server2012查询。有一个WHERE子句,我想根据@Region值设置它的值。下面是我尝试使用的代码 case
when @Region = 'SW'
then Transact.busloc_id in (3, 7, 11)
else Transact.busloc_id in (1, 5, 7)
end
我使用的是SQL Server 2008。我有以下问题。我喜欢做的是,当有记录存在时,我喜欢将实际日期分配给'N/A‘,否则我希望它是手头的CreatedBy日期。
select ActualDate = (CASE
WHEN EXISTS
(select NeedHand from Truck
where Truck.NeedHand = 0 and Truck.ID = '34343')