标签: sql-server

在SQL Server中截断(不舍入)小数位

我正在尝试确定在SQL中截断或删除额外小数位的最佳方法,而不进行舍入.例如:

declare @value decimal(18,2)

set @value = 123.456
Run Code Online (Sandbox Code Playgroud)

这将自动围绕@Value为123.46 ....这在大多数情况下是好的.但是,对于这个项目,我不需要那样做.是否有一种简单的方法来截断我不需要的小数?我知道我可以使用left()函数并转换回小数......还有其他方法吗?

sql t-sql sql-server rounding

184
推荐指数
9
解决办法
61万
查看次数

查询以列出数据库中每个表中的记录数

如何列出数据库中每个表的行数.一些相当于

select count(*) from table1
select count(*) from table2
...
select count(*) from tableN
Run Code Online (Sandbox Code Playgroud)

我将发布一个解决方案,但欢迎其他方法

database sql-server

184
推荐指数
5
解决办法
27万
查看次数

在多列上计算DISTINCT

有没有更好的方法来执行这样的查询:

SELECT COUNT(*) 
FROM (SELECT DISTINCT DocumentId, DocumentSessionId
      FROM DocumentOutputItems) AS internalQuery
Run Code Online (Sandbox Code Playgroud)

我需要计算此表中不同项目的数量,但不同的是超过两列.

我的查询工作正常,但我想知道我是否只使用一个查询得到最终结果(不使用子查询)

sql t-sql sql-server

184
推荐指数
9
解决办法
41万
查看次数

在数据库中存储JSON与为每个键创建一个新列

我正在实现以下用于在我的表中存储用户相关数据的模型 - 我有2列 - uid(主键)和一个meta以JSON格式存储有关用户的其他数据的列.

 uid   | meta
--------------------------------------------------
 1     | {name:['foo'], 
       |  emailid:['foo@bar.com','bar@foo.com']}
--------------------------------------------------
 2     | {name:['sann'], 
       |  emailid:['sann@bar.com','sann@foo.com']}
--------------------------------------------------
Run Code Online (Sandbox Code Playgroud)

这是一个更好的方式(性能明智的,设计明智)比一列,每个属性模型,其中表将不得不像许多列uid,name,emailid.

我喜欢第一个模型,你可以添加尽可能多的字段,没有限制.

此外,我想知道,现在我已经实现了第一个模型.如何对其执行查询,例如,我想获取所有名称为'foo'的用户?

问题 - 在数据库中使用-JSON或每个字段的列存储用户相关数据(请记住数字不固定)的更好方法是什么?另外,如果实现了第一个模型,如何查询数据库如上所述?我是否应该同时使用这两个模型,将查询可能搜索的所有数据存储在一个单独的行中,将其他数据存储在JSON中(是不同的行)?


更新

由于我需要执行搜索的列数不会太多,因此使用这两个模型是否明智?我需要搜索的数据的每列密钥和其他人的JSON(在同一个MySQL数据库中)?

mysql sql database sql-server optimization

184
推荐指数
6
解决办法
13万
查看次数

通过搜索SQL Server Management Studio 2008中的所有表来查找字符串

有没有办法在SQL Server Management Studio 2008中的数据库的所有表中搜索字符串?

我想搜索字符串说john.结果应显示包含的表及其各自的行john.

sql sql-server search

184
推荐指数
6
解决办法
32万
查看次数

从实体框架中删除单个记录?

我在实体框架中有一个SQL Server表,名为employ一个名为的单个键列ID.

如何使用Entity Framework从表中删除单个记录?

c# sql-server entity-framework

184
推荐指数
6
解决办法
30万
查看次数

如何在SQL Server 2005中的一个语句中更新两个表?

我想一次更新两个表.我如何在SQL Server 2005中这样做?

UPDATE 
  Table1, 
  Table2
SET 
  Table1.LastName='DR. XXXXXX', 
  Table2.WAprrs='start,stop'
FROM 
  Table1 T1, 
  Table2 T2
WHERE 
  T1.id = T2.id
AND 
  T1.id = '010008'
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server sql-server-2005

183
推荐指数
6
解决办法
47万
查看次数

sql查询返回两个表之间的差异

我试图比较两个表,SQL Server,以验证一些数据.我想从两个表中返回所有行,其中数据在一个或另一个中.从本质上讲,我想表明所有的差异.我需要检查三个数据,FirstName,LastName和Product.

我对SQL很新,似乎很多我发现的解决方案都让事情变得复杂.我不必担心NULL.

我开始尝试这样的事情:

SELECT DISTINCT [First Name], [Last Name], [Product Name] FROM [Temp Test Data]
WHERE ([First Name] NOT IN (SELECT [First Name] 
FROM [Real Data]))
Run Code Online (Sandbox Code Playgroud)

我在进一步考虑这个问题时遇到了麻烦.

谢谢!

编辑:

根据@treaschf的回答,我一直在尝试使用以下查询的变体:

SELECT td.[First Name], td.[Last Name], td.[Product Name]
FROM [Temp Test Data] td FULL OUTER JOIN [Data] AS d 
ON td.[First Name] = d.[First Name] AND td.[Last Name] = d.[Last Name] 
WHERE (d.[First Name] = NULL) AND (d.[Last Name] = NULL)
Run Code Online (Sandbox Code Playgroud)

但是当我知道td中至少有一行不在d中时,我一直得到0结果.

编辑:

好吧,我想我弄明白了.至少在我测试的几分钟内它似乎工作得很好.

SELECT [First Name], [Last Name]
FROM …
Run Code Online (Sandbox Code Playgroud)

sql sql-server sql-server-2005 sql-server-2008

183
推荐指数
6
解决办法
55万
查看次数

如何检查SQL服务器中是否为空且不是空字符串?

我们如何检查SQL Server WHERE条件是否该列不为空而不是空字符串('')?

sql sql-server

183
推荐指数
6
解决办法
41万
查看次数

如何从SQL Server 2008中的选择查询结果创建表

我想在SQL Server中从select查询结果创建一个表,我试过了

create table temp AS select.....
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误

关键字"AS"附近的语法不正确

sql sql-server sql-server-2008

183
推荐指数
6
解决办法
84万
查看次数