UWInfo Blog
發表新文章
[Join] | [忘記密碼] | [Login]
搜尋

搜尋意見
文章分類-sean
[所有文章分類]
  • ASP.NET (0)
  • ASP.NET2.0 (0)
  • ASP.NET4.0 (1)
  • JavaScript (1)
  • jQuery (0)
  • FireFox (0)
  • UW系統設定 (0)
  • SQL (5)
  • SQL 2008 (0)
  • mirror (0)
  • SVN (0)
  • IE (1)
  • IIS (0)
  • IIS6 (0)
  • 閒聊 (1)
  • W3C (0)
  • 作業系統 (0)
  • C# (0)
  • CSS (0)
  • FileServer (0)
  • HTML 5 (0)
  • CKEditor (0)
  • UW.dll (0)
  • Visual Studio (0)
  • Browser (0)
  • SEO (0)
  • Google Apps (0)
  • 網站輔助系統 (0)
  • DNS (0)
  • SMTP (0)
  • 網管 (0)
  • 社群API (0)
  • SSL (0)
  • App_Inventor (0)
  • URLRewrite (0)
  • 開發工具 (1)
  • JSON (0)
  • Excel2007 (1)
  • 試題 (0)
  • LINQ (0)
  • bootstrap (0)
  • Vue (1)
  • IIS7 (1)
  • foodpanda (0)
  • 編碼 (2)
  • 資安 (0)
  • Sourcetree (0)
  • MAUI (0)
  • CMD (0)
  • my sql (0)
所有文章分類
[sean的分類]
  • ASP.NET (48)
  • ASP.NET2.0 (15)
  • ASP.NET4.0 (34)
  • JavaScript (49)
  • jQuery (26)
  • FireFox (4)
  • UW系統設定 (3)
  • SQL (39)
  • SQL 2008 (25)
  • mirror (4)
  • SVN (4)
  • IE (9)
  • IIS (20)
  • IIS6 (1)
  • 閒聊 (7)
  • W3C (6)
  • 作業系統 (9)
  • C# (24)
  • CSS (12)
  • FileServer (1)
  • HTML 5 (11)
  • CKEditor (3)
  • UW.dll (13)
  • Visual Studio (16)
  • Browser (8)
  • SEO (1)
  • Google Apps (3)
  • 網站輔助系統 (4)
  • DNS (5)
  • SMTP (4)
  • 網管 (11)
  • 社群API (3)
  • SSL (4)
  • App_Inventor (1)
  • URLRewrite (2)
  • 開發工具 (6)
  • JSON (1)
  • Excel2007 (1)
  • 試題 (3)
  • LINQ (1)
  • bootstrap (0)
  • Vue (3)
  • IIS7 (3)
  • foodpanda (2)
  • 編碼 (2)
  • 資安 (3)
  • Sourcetree (1)
  • MAUI (1)
  • CMD (1)
  • my sql (1)
最新回應
  • \xE9 MYSQL Insert error
    比較新版的 MySql 好像預設都是 utf8 哦. 所以一率不用加 N 的...more
  • in篩選欄位中被逗點分隔的資料
    標題可以加上 "sp_executesql" .....more
  • SQL injection 也會發生在 useragent
    那要檢查一下網站寫入 UA 有無拼字串基本上 能塞入HTTP HEADER 都可能是假資料...more
  • IE 不支援 Ajax url:"" 填空白
    試著加一個問號 ? 測看看...more
標籤
  • -9649 UNIO
  • Ubuntu
  • a
  • -3968
  • 6402-6385
  • CK
  • core
  • .
  • 892
  • 1
  • 726
  • sp_
  • a generic
  • unt
  • window
  • �
  • NSFTW
  • 0KeeTeamex
  • IE
  • SQL Availa
  • sing
  • ip[t]
  • 0,
  • -1140
  • for
  • images
  • 150
  • 70
  • 1833
  • PreviewPri
  • nelson
  • tim
  • C
  • 8468
  • 5399
  • 976
  • en
  • visual stu
  • .net
  • 鏡像
  • background
  • private
  • 8125
  • 語言版本
  • AD
  • DB.OrderMa
  • RSA
  • ti
  • sns
  • 必須為非負數且小於集
in篩選欄位中被逗點分隔的資料
由於從欄位抓出的值 雖然是由逗點分隔 但整體資料容易被當成一組單一字串
例如
Table
#SomeTable
欄位 :
Id  MemberIds
值
1 12,30,58
2 45,68,88

想要篩選  where member_Id in (select MemberIds from SomeTable  where Id = 2)
會被當成  Id in ('45,68,88')  文字跟整數無法被篩選

解決方法之一

  create table #SomeTable (Id int,MemberIds nvarchar(30))
  insert into #SomeTable (Id,MemberIds) values (1,'12,30,58')
  insert into #SomeTable (Id,MemberIds) values (2,'45,68,88')
  select * from #SomeTable

  create table #TargetTable (Id int,member_Id  nvarchar(30))
  insert into #TargetTable (Id,member_Id ) values (1,12)
  insert into #TargetTable (Id,member_Id ) values (2,30)
  insert into #TargetTable (Id,member_Id ) values (3,45)
  insert into #TargetTable (Id,member_Id ) values (4,58)      
  insert into #TargetTable (Id,member_Id ) values (5,68)
  insert into #TargetTable (Id,member_Id ) values (6,88)
  select * from #TargetTable

DECLARE @MemberIds nvarchar(200);DECLARE @SQLString nvarchar(200);
select  @MemberIds =MemberIds  from #SomeTable(nolocK) where Id = 2
SET @SQLString = N' select * from #TargetTable   where member_Id in (' + @MemberIds  + ')' ;  
EXECUTE sp_executesql @SQLString

將整體都當成字串   就可以執行了

如果用逗點隔開如果用逗點隔開的是字串
如:
Hi,Im,String
可以先把它加上單引號
select '''' + Replace(MemberIds ,',','''' +',' + '''') + '''' from #SomeTable 






 

sean, 2017/6/12 下午 12:09:48
文章分類:SQL
Bike, darren, jimmy, Reiko 已閱讀.
意見
Bike say:
2017-06-17 09:51:54
標題可以加上 "sp_executesql" ..
Comment:
*Nickname:
E-mail:
Blog URL:
  • *意見內容
  • 預覽
#Nickname#
2017/6/12 下午 12:09:48
#CommentContent#
*請輸入驗證碼: 看不懂,換張圖
 
~ Uwinfo ~