select (case when t.freeplayabandoned != f.freeplayabandoned then 'freeplayabandoned'
when t.freeplaydownloaded != f.freeplaydownloaded then 'freeplaydownloaded'
end)
from testtable t where not exists (select * from freeplay.egmfreeplay f where f.freeplaydownloaded = t.freeplaydownloaded)
Run Code Online (Sandbox Code Playgroud)
我试图得到testtable记录的列名与freeplay.egmfreeplay的列名不匹配
并且我得到错误以下错误
消息4104,级别16,状态1,行1无法绑定多部分标识符"f.freeplayabandoned".消息4104,级别16,状态1,行1无法绑定多部分标识符"f.freeplaydownloaded".
有人可以帮忙吗?
我有一个查询连接SQL Server 2005中的3个表,但没有Where子句,所以我索引连接语句中找到的字段.
如果我的索引设置为Col1,col2,col3
我的加入是
Tbl1
inner join tbl2
On
Tbl1.col3=tbl2.col3
Tbl1.col2=Tbl2.col2
Tbl1.col1=Tbl2.col1
Run Code Online (Sandbox Code Playgroud)
与索引的顺序相比,join语句的顺序是否有所不同?我应该将我的索引设置为Col3,col2,col1吗?或者将我的加入声明重新组合为Col1,col2,col3?
谢谢
是否可以缩短group by子句,以便您不必重复select子句中提到的字段?例如:
SELECT
field1,
field2,
field3,
field4
FROM table
GROUP BY
field1,
field2,
field3,
field4
to:
SELECT
field1,
field2,
field3,
field4
FROM table
GROUP BY
SELECT.*
Run Code Online (Sandbox Code Playgroud)
......或者这种效果.我正在编写一个将使用sp_executesql()存储过程的查询,并且我的变量中的空间不足.非常感谢你.
sql-server如何处理无限循环?它是检测它还是杀死服务器.
例如:
WHILE (@number = 3)
BEGIN
print @number
END
Run Code Online (Sandbox Code Playgroud) 我有一个字段'描述',可以有任何unicode字符的产品描述.如果我搜索包含国际字符的描述,并且具有LIKE条件(搜索的单词没有国际字符),我会得到以下结果:
例如:GEWÜRZTRAMINER是其中一个描述.当我做:
Select * from table where Description LIKE '%GEWURZTRAMINER%', it retrieves the entry.
Run Code Online (Sandbox Code Playgroud)
当我做:
Select * from table where Description LIKE '%GEWURZ%', the entry is not retrieved.
Run Code Online (Sandbox Code Playgroud)
(注意:搜索条件不包括Ü但有U)
有没有办法解决这个问题,以便我可以使用'%GEWURZ%'进行检索?
使用SQL Server 2008.
示例表:
CREATE table dbo.blobtest
(id int primary key not null,
name nvarchar(200) not null,
data varbinary(max) null)
Run Code Online (Sandbox Code Playgroud)
示例查询:
select id, name,
cast((case when data is null then 0 else 1 end) as bit) as DataExists
from dbo.blobtest
Run Code Online (Sandbox Code Playgroud)
现在,查询需要返回一个"DataExists"列,如果blob为null,则返回0,否则返回1.
这一切都很好,但我想知道它的效率如何.即,SQL服务器是否需要将整个blob读入其内存,或者是否有一些优化,以便它只进行足够的读取以确定blob是否为空?
(FWIW,对于此示例,sp_tableoption"超出行的大值类型"选项设置为OFF).
有一些问题想出这一个.
select*,(从chicken_photo选择top1 chicken_nr,其中鸡=代码顺序为[sort])作为Chicken的照片
代码是Table Chicken中的一列
基本上得到这只鸡的封面照片.
为了更清楚,我希望它从表Chicken返回多行.但只有一个来自chicken_photo的条目.
var q = from chicken in data.chickens
join photos in data.chicken_photos
on chicken.Code equals photos.chicken
where chicken.Lang==lang && chicken.photographer_nr == nr
group chicken by new {chicken.photographer,photos.Photograph_Nr,chicken.Title,chicken.Code}
Run Code Online (Sandbox Code Playgroud) 请原谅我,因为我是一个sql noob.我正在尝试使用以下内容进行插入,但是我对撇号有问题.我有很多要插入的记录,但很多都有同样的问题.有没有逃脱它们的方法?
INSERT INTO [dbo].[tb_Chefs] ([ChefHotelID], [HotelID], [ChefID],
[Position], [GroupID])
VALUES(N'b809a86e-f7f2-45b2-a240-0049f51509d7' ,N'14481', N'624',
N'Chef d'atelier', N'331')
GO
Run Code Online (Sandbox Code Playgroud)
任何帮助非常感谢.
有两种方法可以创建约束,
方法A:
ALTER TABLE dbo.<tablename> ADD CONSTRAINT
<namingconventionconstraint> UNIQUE NONCLUSTERED
(
<columnname>
Run Code Online (Sandbox Code Playgroud)
方法B:
CREATE UNIQUE NONCLUSTERED INDEX
<namingconventionconstraint> ON dbo.<tablename>
(
<columnname>
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)
但是,似乎需要使用依赖于它们的创建方式(Drop约束与drop index)的方法来删除这些约束.有没有办法确定创建约束的方法,而不是尝试方法并查看它是否失败?我知道你可以让SQL Server为你创建一个drop脚本,但我正在寻找某种查询.
我试图将查询的结果返回到变量,我能够在插入语句中使用它.但是我的选择仍然返回null,即使我相信我已ISNULL(NULLIF())正确设置.
declare @test varchar(10)
set @test = (select ISNULL(NULLIF(discnumber,''),'NA')
from discmaster
where meteredfilename = '3501' or nonmeteredfilename='3501')
select @test
Run Code Online (Sandbox Code Playgroud)
它似乎是正确的但仍然返回一个NULL值.你会选择Case而不是100%肯定该方法.
sql ×9
sql-server ×8
t-sql ×5
.net ×1
c# ×1
constraints ×1
distinct ×1
grouping ×1
indexing ×1
linq ×1
performance ×1
string ×1
timeout ×1