1

我有两种类型的表,称为OrganizationsOrgLogin。

组织:

ID
Name

组织登录:

LoginId
UserName
Password

我想在组织表中使用用户名和密码进行选择查询。所以我使用了Join。

我的疑问是,

select top(55)'Insert into Organizations(Id,Username,Password,Name)values(' + 
       Cast(o.organizationId as varchar(50))+',''' +
        IsNull(''''+ol.UserName+'''', 'NULL')+','+
       isnull(convert(nvarchar(max),HASHBYTES('MD5',ol.Password),1),'NULL')+ ')' 
    FROM Organization AS o 
    left join OrgLogin As ol ON ol.LoginId=o.OrganizationID

我有以下结果集,

Insert into Organizations(Id,CreateDate,Username,Password)values(1,'NULL,NULL)

Insert into Organizations(Id,CreateDate,Username,Password)values(2,'NULL,NULL)

Insert into Organizations(Id,CreateDate,Username,Password)values(3,'NULL,NULL)

Insert into Organizations(Id,CreateDate,Username,Password)values(4,'NULL,NULL)

Insert into Organizations(Id,CreateDate,Username,Password)values(5,''V EX Electronics Systems Pvt.Ltd.Chennai',0xACB3BB721E1EC47C4CB569331ACC4E8E)

Insert into Organizations(Id,CreateDate,Username,Password)values(5,''V EX Electronics Systems Pvt.Ltd.Chennai',0xACB3BB721E1EC47C4CB569331ACC4E8E)

Id 重复参见“5”Id。两次创建。为什么会这样?任何想法?

4

1 回答 1

0

您应该整理单引号(在第一个 ISNULL 之前)

select top(55)'
    Insert into Organizations(Id,Username,Password,Name)values(' + 
    Cast(o.organizationId as varchar(50))+',' +
    IsNull(''''+ol.UserName+'''', 'NULL')+','+
    isnull(convert(nvarchar(max),HASHBYTES('MD5',ol.Password),1),'NULL')+ ')' 
FROM Organization AS o 
left join OrgLogin As ol ON ol.LoginId=o.OrganizationID

接下来,o.id只要该组织有多个 OrgLogin 记录,就会重复。

于 2013-04-25T06:17:36.183 回答