עמודה לא חוקית

  • פותח הנושא roee
  • פורסם בתאריך

roee

New member
עמודה לא חוקית

preFixMsg הוא עמודה לא חוקית מישהו יכול לעזור? רועי
SELECT dbo.inSMS.inSMSid, dbo.inSMS.phone, dbo.inSMS.msg, dbo.inSMS.theDate, dbo.pools.poolID, dbo.pools.poolType, dbo.pools.poolDesc, dbo.pools.preFix, dbo.pools.preFix2, dbo.pools.Price, dbo.pools.SC, dbo.pools.poolURL, dbo.pools.poolResponse, dbo.pools.poolEncode, SUBSTRING(dbo.inSMS.msg, 1, CHARINDEX(' ', dbo.inSMS.msg)+1) AS preFixMsg FROM dbo.pools INNER JOIN dbo.inSMS ON dbo.pools.preFix = preFixMsg​
 

גרי רשף

New member
נסה כך

SELECT dbo.inSMS.inSMSid, dbo.inSMS.phone, dbo.inSMS.msg, dbo.inSMS.theDate, dbo.pools.poolID, dbo.pools.poolType, dbo.pools.poolDesc, dbo.pools.preFix, dbo.pools.preFix2, dbo.pools.Price, dbo.pools.SC, dbo.pools.poolURL, dbo.pools.poolResponse, dbo.pools.poolEncode, SUBSTRING(dbo.inSMS.msg, 1, CHARINDEX(' ', dbo.inSMS.msg)+1) AS preFixMsg FROM dbo.pools INNER JOIN dbo.inSMS ON dbo.pools.preFix = SUBSTRING(dbo.inSMS.msg, 1, CHARINDEX(' ', dbo.inSMS.msg)+1)​
 

roee

New member
תודה ושאלה נוספת:

שאלה נוספת: אם יש לי מחרוזת שאני רוצה לעשות עליה ספליט ואז להכניס כל איבר ב"מערך" לתוך משתנה ולעשות אינסרט. איך עושים?
 

גרי רשף

New member
אינני מכיר פתרון פשוט

יש לי פתרון פשוט למקרה ההפוך- לקחת טור ולהפוך אותו למחרוזת. הפתרון הלא פשוט במקרה שלך הוא לעבור בלולאה על המחרוזת ולהכניס כל איבר לטבלה. אפשר לחשוב (למי שמשעמם לו) על פתרון עם רקורסיה, אבל לא לנסות במקום העבודה..
 

roee

New member
הנה פיתרון שמצאתי ועובד לי טוב

Set @strDelimitedString = @PhoneString -- מקבל מחרוזת עם כל המספרים מופרדים בפסיקים Set @Start = 1 Set @End = charindex(',',@strDelimitedString) While (@End > 0) Begin set @myreturn1=null Set @strValue = Substring(@strDelimitedString, @Start, @End - @Start) Set @Start = @End + 1 Set @End = charindex (',',@strDelimitedString, @End+1) -- תעשה משהו פה End​
 

גרי רשף

New member
נתת לי אתגר..

אני מניח שיש לך טבלת מספרים (כפי שכבר הומלץ כאן בפורום):
Declare @S As VarChar(8000) Set @S='qqq,wert,yuio,as f,3456,, $ /,m,' Select Left(Right(@S,Len(@S)-Mispar),CharIndex(',',Right(@S,Len(@S)-Mispar))-1) From T_Misparim Ms Where Mispar Between 0 And Len(@S)-1 And (SubString(@S,Mispar,1)=',' Or Mispar=0)​
 

roee

New member
אני אמשיך../images/Emo13.gif

שלפתי 200 רשומות והעברתי אותם לטבלה אחרת איך אני עושה אפדייט ל200 האלה?
insert into dbo.inSMS (dbo.inSMS.OPR, dbo.inSMS.PHONE,dbo.inSMS.msg ,dbo.inSMS.SC , dbo.inSMS.SCSMSID ) (select top 200 SCSMSView.OPR ,SCSMSView.PHONE,SCSMSView.msg , SCSMSView.ACCESS_NUMBER, SCSMSView.SCSMSID from dbo.SCSMSView where (dbo.SCSMSView.ishandle = 0 )) ;​
 

roee

New member
למעשה - אם הייתי

יכול לקבל את רשימת הID שעידכנתי ועדכן אותה עם IN זה יהיה מצויין בשבילי אמרת משהו על להפוך טור למחרוזת?
 

גרי רשף

New member
דוגמית

Declare @S VarChar(8000) Select @S = Coalesce(@S + ', ', '') + name From sysobjects Select @S​
נכון הוקוס פוקוס? אני ראיתי את זה ברצפה- נפלתי בכסא..
 

roee

New member
לא עובד

Syntax error converting the varchar value '1, ' to a column of data type int.
 
למעלה