小编Gio*_*sos的帖子

Postgres:选择具有大于1的字段数的所有行

我有表存储产品价格信息,表看起来类似,(不是主键)

no   name    price    date
1    paper   1.99     3-23
2    paper   2.99     5-25
3    paper   1.99     5-29
4    orange  4.56     4-23
5    apple   3.43     3-11
Run Code Online (Sandbox Code Playgroud)

现在我想选择"name"字段在表格中多次出现的所有行.基本上,我希望我的查询返回前三行.

我试过了:

SELECT * FROM product_price_info GROUP BY name HAVING COUNT(*) > 1  
Run Code Online (Sandbox Code Playgroud)

但我得到一个错误说:

列"product_price_info.no​​"必须出现在GROUP BY子句中或用于聚合函数

sql postgresql

17
推荐指数
3
解决办法
2万
查看次数

在另一列上分组的两列不同

我试图在SQL Server中的另一列上分组的两列上获取重复值的数量.

以下是我正在研究的示例场景.

    DECLARE @mytable TABLE (CampName varchar(10),ID VARCHAR(10),ListName varchar(10))
    INSERT INTO @mytable
            ( CampName, ID, ListName )
    VALUES  ( 'A',   'X',   'Y' ), ( 'A',   'X',   'Y' ), 
            ( 'A',   'Y',   'Z' ), ( 'A',   'Y',   'Z' ),
            ( 'A',   'Y',   'Z' ), ( 'A',   'P',   'Q' ),
            ( 'B',   'X',   'Y' ), ( 'B',   'X',   'Y' ), 
            ( 'B',   'Y',   'Z' ), ( 'B',   'Y',   'Z' ),
            ( 'B',   'Y',   'Z' ), ( 'B',   'P',   'Q' ),
            ( …
Run Code Online (Sandbox Code Playgroud)

sql t-sql sql-server

13
推荐指数
3
解决办法
347
查看次数

Device.OnPlatform已弃用

在我的构造函数内部,ContentPage我尝试设置一个依赖于平台的填充值:

Padding = new Thickness(5, Device.OnPlatform(20, 5, 5), 5, 5);
Run Code Online (Sandbox Code Playgroud)

Visual Studio下划线Device.OnPlatform,当我将鼠标指针悬停在方法调用上时,我收到以下警告:

Devide.OnPlatform(T,T,T)已过时:'使用开关(RuntimePlatform)代替'.

最初使用的代码是从电子书出版的2016年"与Xamarin.Forms书创建移动应用"我真的很惊讶,这个平台是如何快速的发展!

不幸的是,我不知道Device.OnPlatform应该如何使用警告建议的方式进行替换.

c# xamarin

10
推荐指数
3
解决办法
4698
查看次数

无法在SQL Server 2017中创建tSQLtCLR程序集

我最近安装了SQL Server 2017 Express和localdb(一般可用性).在尝试安装tSQLt框架时,我发现了SQL Server 2017中实现的新安全功能:"clr strict security"选项.这个新的安全功能似乎阻止了tSQLtCLR程序集的创建.SQL错误消息指出:

使用SAFE或EXTERNAL_ACCESS选项对程序集'tSQLtCLR'进行CREATE或ALTER ASSEMBLY失败,因为sp_configure的'clr strict security'选项设置为1. Microsoft建议您使用具有相应登录名的证书或非对称密钥对程序集进行签名UNSAFE ASSEMBLY许可.或者,您可以使用sp_add_trusted_assembly信任程序集.

我已经阅读了与sp_add_trusted_assembly过程相关的Microsoft技术文档,但它似乎假设您能够成功创建程序集.如果你不能首先创建它,那么如何将tSQLtCLR程序集编码为"受信任"?

sql-server automated-tests sqlclr tsqlt sql-server-2017

7
推荐指数
2
解决办法
6284
查看次数

如果在视图中使用TempData值,则不会持久化

我在用

TempData["hdn"] = "1";
Run Code Online (Sandbox Code Playgroud)

在控制器中如果我使用它

 @{
      var hdn = (string)TempData["hdn"];
  }
Run Code Online (Sandbox Code Playgroud)

TempData["hdn"]在POST中获取null的View 值.如果我在视图中跳过此代码,它会在POST中持续存在.为什么会这样?

tempdata asp.net-mvc-4

6
推荐指数
3
解决办法
7871
查看次数

发布数据库项目失败,因为部署脚本尝试删除并重新创建未修改的表

我正在使用Visual Studio 15.8.5与Sql Server数据工具15.1.

我创建了一个SQL Server数据库项目并导入了现有数据库的模式.我对数据库的几个表进行了一些小的更改,并将更新发布到开发数据库,​​没有任何问题.

在向项目添加一些SQL脚本之后,所有这些脚本都包含:

Build Action = None
Run Code Online (Sandbox Code Playgroud)

尽管没有对项目的任何数据库对象进行任何更改,但发布失败.

这是导致问题的自动生成的发布脚本的一部分:

/*
The table [lut].[KAE] is being dropped and re-created since all 
non-computed columns within the table have been redefined.
*/

IF EXISTS (select top 1 1 from [lut].[KAE])
    RAISERROR (N'Rows were detected. The schema update is terminating 
because data loss might occur.', 16, 127) WITH NOWAIT

GO
Run Code Online (Sandbox Code Playgroud)

但是,表格[lut].[KAE]没有改变.其中一个脚本正在重新定义其架构,但这应该没有区别,因为这是一个'No Build'脚本.

我在这里做错了什么?

编辑:

@MadBert建议我做了架构比较.我最初使用我的实际数据库作为和我的sql server visual studio项目作为目标.没有发现任何差异.

然后我切换源和目标数据库并再次进行比较.检测到以下"差异".

在此输入图像描述

正如您所看到的,这不是实际差异,它看起来像是架构比较中的Visual Studio错误.关于如何规避这种行为的任何想法?

sql-server visual-studio sql-server-data-tools

6
推荐指数
1
解决办法
782
查看次数

如何在连接两个表时避免重复

我有两张桌子

  1. test 1

  2. test 2
Run Code Online (Sandbox Code Playgroud)

第一张表有

**id**  -   **name**

 1      -    kerala 

 2      -    Tamilnadu
Run Code Online (Sandbox Code Playgroud)

第二张桌子

  **name**  -  **jid**

   value 1  -  1

   value 2  -  1

   value 3  -  1

   value 4  -  1

   value 5  -  2
Run Code Online (Sandbox Code Playgroud)

我的查询 -

SELECT t1.name, t2.name
FROM test1 t1
INNER JOIN test2 t2
WHERE t1.id = t2.jid
Run Code Online (Sandbox Code Playgroud)

现在我得到了这个结果

**name**    -  **name**

Kerala  -  value 1

kerala  -  value 2

kerala  -  value 3

kerala  -  value 4
Run Code Online (Sandbox Code Playgroud)

但我需要这样的结果

Kerala …
Run Code Online (Sandbox Code Playgroud)

mysql join

5
推荐指数
1
解决办法
87
查看次数

向我的ASP.NET核心应用程序添加SQL连接 - 如何定义ConnectionStrings

我正在尝试将我的ASP.NET核心应用程序连接到我的数据库.

为此,我应该编辑appsettings.json文件并定义我的默认连接.

我不确定在服务器和数据库下放什么.

我正在尝试连接数据库StudentDB.

这是我试图用来连接到我的数据库的字符串:

在此输入图像描述

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=ACTKPTP115;Database=StudentsDB;Trusted_Connection=True;MultipleActiveRes ultSets=true;"
},
Run Code Online (Sandbox Code Playgroud)

如您所见,我在Visual Studio中连接了数据库.

这是我试图在Microsoft SQL管理工作室中连接的数据库:

在此输入图像描述

我在服务器和数据库下的ConnectionStrings中键入什么来正确连接我的服务器?

sql-server asp.net asp.net-core

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

编译项目时出错

我每次尝试编译程序时都会收到此错误.

某些项目功能(例如失败项目的完整解决方案分析和依赖它的项目)已被禁用.

"XamlCTask"任务不支持"DebugType"参数.验证该任务上是否存在该参数,它是一个可设置的公共实例属性.

无法使用其输入参数初始化"XamlCTask"任务.

这是Xamarin的Android项目.

感谢大家提前.

android xamarin

5
推荐指数
1
解决办法
1333
查看次数

在MySQL中使用CTE进行更新或删除

MySQL的新版本8.0现在支持Common Table Expressions

根据手册:

SELECT,UPDATE和DELETE语句的开头允许使用WITH子句:

WITH ... SELECT ...
WITH ... UPDATE ...
WITH ... DELETE ...
Run Code Online (Sandbox Code Playgroud)

因此,我认为,鉴于下表:

ID lastName firstName
----------------------
1  Smith    Pat
2  Smith    Pat
3  Smith    Bob
Run Code Online (Sandbox Code Playgroud)

我可以使用以下查询:

;WITH ToDelete AS 
(
   SELECT ID,
          ROW_NUMBER() OVER (PARTITION BY lastName, firstName ORDER BY ID) AS rn
   FROM mytable
)   
DELETE FROM ToDelete
Run Code Online (Sandbox Code Playgroud)

为了从表中删除重复项,就像在SQL Server中一样

原来我错了。当我尝试DELETE从MySQL Workbench 执行stament时出现错误:

错误代码:1146。表“ todelete”不存在

当我尝试UPDATE使用CTE 时,还会收到一条错误消息。

因此,我的问题是,如何在MySQL WITHUPDATEor DELETE语句的上下文中使用子句(如8.0版的手册中所述)?

mysql common-table-expression sql-update sql-delete mysql-8.0

5
推荐指数
2
解决办法
1859
查看次数