מיון לפי מספור משפטי SQL SERVER
-
שלום לכולם
אני צריך למיין עמודה שהיא בעצם סטרינג, אבל עלי להתייחס אליה כאל מספור משפטי (כמו בחוזים שעושים עורכי דין, 1.4.6.8 וכן הלאה) הבעיה: סטרינג כידוע ממויין באופן לא רציונלי כאשר הוא מכיל מספר, כלומר 11 הוא לפני 2 וכן הלאה. אז בשלמא עד היום חינכו אותנו לעשות cast אבל מה יהיה כשהטריק הזה כבר לא עובד??מקווה שיש למישהו רעיון.
דוגמת קוד:
declare @t table (ContractClause nvarchar(max)) insert @t values ('1'),('11'),('1.1.3'),('2.1') select * from @t order by ContractClause
פורסם במקור בפורום CODE613 ב25/07/2016 19:36 (+03:00)
-
רחמים תודה
דווקא התשובה שנמצאת כאן
זאת עם אפס הצבעות, היא הכי פשוטה ויעילה.
הקוד כך:
declare @t table (ContractClause nvarchar(max)) insert @t values ('1'),('11'),('1.1.3'),('2.1') select * from @t ORDER BY cast('/' + ContractClause + '/' as hierarchyid)
פורסם במקור בפורום CODE613 ב25/07/2016 23:31 (+03:00)