我有以下SQL查询
select s.comments + s.further_comments from dbo.samples s where id = 1234
Run Code Online (Sandbox Code Playgroud)
但是,如果s.comments或s.further_comments为NULL,则整个字符串返回NULL
如何将NULL值转换为空字符串或至少仅返回此字符串中的非NULL值?
谢谢
there are date values in the below format,in one of the sql server 2000 tables
10/1/2013 10:39:14 PM
10/1/2013 6:39:04 PM
10/1/2013 8:19:31 AM
10/1/2013 3:35:40 AM
Run Code Online (Sandbox Code Playgroud)
how to convert the above format data values into a 24hour date format,as shown below
10/1/2013 10:39
10/1/2013 18:39
10/1/2013 8:19
10/1/2013 3:35
Run Code Online (Sandbox Code Playgroud) sql sql-server sql-server-2005 sql-server-2008 sql-server-2008-r2
我收到来自多个天线的每日txt数据文件.文件的命名约定是:
独特的天线ID +年+月+日+随机3位数
我解析了文件名并创建了一个像这样的表:
AntennaID fileyear filemonth fileday filenumber filename
0000 2016 09 22 459 000020160922459.txt
0000 2016 09 21 981 000020160921981.txt
0000 2016 09 20 762 000020160920762.txt
0001 2016 09 22 635 000120160922635.txt
.
.
.
etc. (200k rows)
Run Code Online (Sandbox Code Playgroud)
有时天线发送的文件多于1个或根本没有文件.如果发送的文件超过1,则唯一的3位数文件编号会区分文件,但我正在尝试查找未发送文件的日期.
我已经尝试了几个groupby语句来比较给定月份的数据文件数量,看看它是否与那个月的天数相匹配 - 但问题是有时候天线每天发送超过1个文件,这可能是人为的如果我们只是比较计数,则弥补"遗失"文件.
我正在寻找一种更健壮的方法来查找丢失文件的日期或日期范围.我已经查看了Partition和Over函数,感觉可能存在潜力,但我不确定如何使用它们,因为我对SQL很新.
我正在使用Microsoft SQL Server 2016
sql sql-server missing-data gaps-and-islands sql-server-2016
我想在两个数据库之间创建外键。碰巧这些表有数据,所以当我制作外关系时,出现了错误。
我发现当您的表有数据时会发生错误。那么如何不验证现有数据呢?
ALTER TABLE [contrato_sigob].[relacion_institucion_categoria]
ADD CONSTRAINT CHECK_CATEGORIA
CHECK([dbo].[func_CHECK_CATEGORIA](id_categoria)=1);
Run Code Online (Sandbox Code Playgroud)
错误说:
The ALTER TABLE statement conflicted with the CHECK constraint "CHECK_CATEGORIA". The conflict occurred in database "SIGOB_Contraloria", table "contrato_sigob.relacion_institucion_categoria", column 'id_categoria'.
Run Code Online (Sandbox Code Playgroud) 我希望查询表存在的每个数据库中的表中的列.到目前为止,我有以下内容,但不知道从哪里开始:
DECLARE @tblName VARCHAR(5000) = 'myTable'
SELECT name
FROM sys.databases
WHERE CASE
WHEN state_desc = 'ONLINE'
THEN OBJECT_ID(QUOTENAME(name) + '.[dbo].['+@tblName+']','U')
END IS NOT NULL
Run Code Online (Sandbox Code Playgroud)
到目前为止,我可以使用我正在查找的表返回所有数据库,但我希望SQL服务器上每个数据库中指定表中的特定列的所有列数据.提前谢谢你的帮助.
当我尝试为子查询提供别名,然后在 Where 子句中引用它时,我收到一条错误消息:“where 子句”中的未知列“point_status”
SELECT goals.id, goals.status,
ifnull((SELECT point_status FROM pts WHERE point_id = ?), goals.status) as point_status
FROM goals
WHERE goals.name = ? AND point_status > 1
Run Code Online (Sandbox Code Playgroud)
我不明白为什么它不允许我使用这个别名。通过不修改查询的功能,是否可以在 where 子句中以某种方式使用该别名?
我需要更新数据库中超过一千行的单列。通常,当我需要这样做时,我会执行以下操作:
UPDATE [table] SET DATA="FOO" WHERE ID=23;
UPDATE [table] SET DATA="ASD" WHERE ID=47;
UPDATE [table] SET DATA="FGH" WHERE ID=83;
UPDATE [table] SET DATA="JKL" WHERE ID=88;
UPDATE [table] SET DATA="QWE" WHERE ID=92;
UPDATE [table] SET DATA="BAR" WHERE ID=97;
Run Code Online (Sandbox Code Playgroud)
我觉得应该有一种方法可以轻松做到这一点,但是在网上搜索后,我找不到解决方案。
我所希望的是:
-- THIS DOES NOT WORK
UPDATE [table]
SET DATA=("FOO", "ASD", "FGH", "JKL", "QWE", "BAR")
WHERE ID=(23, 47, 83, 88, 92, 9);
Run Code Online (Sandbox Code Playgroud)
需要注意的一条重要信息是,我总是设置一列,即跨一组特定行的同一列。
有谁知道最好的方法来做到这一点?
我希望根据日期选择一个表的最新记录,但每个网址只有一个不同的列表.表结构是这样的;
ID URL DateVisited
1 google.com 01-01-2016
2 yahoo.com 01-02-2016
3 google.com 12-30-2015
4 google.com 02-01-2016
Run Code Online (Sandbox Code Playgroud)
所以我想要的结果集
google.com 02-01-2016
yahoo.com 01-02-2016
Run Code Online (Sandbox Code Playgroud)
在我的实际查询中我会有更多的条件,但只想在点击日志中获取单个最新记录,而不是列出不同的网址和日期,只是不同的网址和最新日期.
我正在尝试使用一个MERGE
语句来使用单个源 (CTE) 更新 2 个表。当我只使用 1 个合并时它有效,但是当我添加第二个时,它返回一个错误:
消息 208,级别 16,状态 1,过程 mn_SeoUrl_UpdateBulk,第 46 行
无效的对象名称“ cte ”。
是否可以通过合并更新 2 个表?如果可能的话,我做错了,我希望有人可以告诉我这样做的正确方法是什么。
任何帮助深表感谢。
谢谢你。
这是我的失败代码(错误的列名):
WITH cte AS
(
SELECT
[u].[col1], [u].[col2], [u].[col3],
CASE
WHEN [u].[col1] LIKE 'L%'
THEN 'c/' + [u].[col2] + '/' + [u].[col3]
WHEN [u].[col1] LIKE 'M%'
THEN 'm/' + [u].[col2] + '/' + [u].[col3]
END [col4]
FROM
(SELECT
[st1].[col1], [st1].[col2], [st1].[col3]
FROM
[dbo].[sourcetable1] [st1]
INNER JOIN
[dbo].[sourcetable2] [st2] ON [st1].[ID] = [st2].[ID]
WHERE
[pd].[col2] <> 0) …
Run Code Online (Sandbox Code Playgroud) 我想查看 SSMS 中表的属性。
我已经看到“突出显示表名称”并单击某些内容可以提供有关表的完整详细信息,例如列描述、约束名称及其描述等。
有人可以告诉我如何使用 SSMS 做到这一点吗?
sql ×9
sql-server ×8
t-sql ×2
database ×1
distinct ×1
foreign-keys ×1
merge ×1
missing-data ×1
mysql ×1
ssms ×1
string ×1